Войдите для лучшего опыта
Войдите для лучшего опыта
Правила акции
1、Время акции:{{ info.groupon.start_at }} ~ {{ info.groupon.end_at }}。
1、Время акции:Пока есть в наличии。
2、Срок действия группы:{{ info.groupon.expire_days * 24 }}час.。
3、Участников в группе:{{ info.groupon.need_count }}чел.。
Важная информация
1、Процесс: Вступите/Создайте и оплатите -> Наберите группу -> Успех!
2、Если группа не наберётся, деньги вернутся.
3、Условия зависят от товара. Читайте правила.
NovaPDF 11 Персональная версия PDF Документация
novaPDF, Ваш мощный инструмент для создания PDF
NovaPDF - это PDF - принтер для Windows, который позволяет легко создавать стандартные для отрасли PDF - файлы (с возможностью поиска и опционального соответствия PDF / A).
Печать в PDF никогда не была настолько простой, что вы можете генерировать PDF, просто открыв документ, нажав кнопку « распечатать» и выбрав novaPDF в качестве принтера.
Используя novaPDF, вы можете легко создавать PDF - файлы из любого документа, который можно распечатать, как если бы он был напечатан на физическом принтере. Его интуитивный интерфейс делает его удобным для начинающих, но также включает в себя расширенные функции для продвинутых пользователей. Скачайте пробную версию сразу и используйте ее бесплатно до 30 дней.
novaPDF совместим со следующими операционными системами: Windows 11, 10, 8, 7, Vista (32 / 64 бит); Сервер 20222019201620122008R2
Вот некоторые преимущества использования novaPDF:
Основные особенности
Используя novaPDF, вы можете преобразовать любой тип распечатываемого документа (т. е..DOCX, XLSX, PPTX, PUBX, HTML, TXT,...) в PDF, доступ к его функциям через интерфейс драйвера принтера.
Если установлен novaPDF, вы можете создать PDF, просто нажав кнопку « печать» в любом приложении Windows, связанном с документом. Вы также можете использовать интерфейс входа novaPDF.
NovaPDF поставляется со всеми приложениями Microsoft Office: Word, Excel, PowerPoint, Publisher, Visio и Outlook. Это означает преобразование одного клика из приложения Office в PDF.
Одним из основных преимуществ элементов загрузки является возможность преобразования скрытых гиперссылок и простого преобразования закладок.
Вы можете защитить свой PDF - документ (256 - битное шифрование AES), попросив получателя ввести пароль для просмотра, печати или копирования / вставки содержимого в PDF.
Вы можете контролировать, можно ли просматривать, печатать, изменять, копировать или комментировать PDF. Кроме того, вы можете использовать цифровую подпись для подтверждения подлинности PDF - документа.
Официальный сайт:https://www.novapdf.com/compare-editions.html
Центр загрузки:https://novapdf.apsgo.cn
Резервная загрузка:N/A
Время отгрузки:Обработка вручную
Запуск платформы:Windows
Язык интерфейса:Поддержка отображения китайского интерфейса, многоязычие необязательно.
Обновленная информация:Поддержка небольших обновлений (v11.x)
Испытание перед покупкой:Перед покупкой предоставляется бесплатная пробная версия на 30 дней.
Как получить товар:После покупки информация об активации отправляется по почте на почтовый ящик при размещении заказа, а соответствующий код активации продукта можно просмотреть в персональном центре, в моем заказе.
Количество оборудования:Можно установить 1 компьютер.
Замена компьютера:Исходный компьютер выгружен, новый компьютер активирован.
Активировать загрузку:Будет добавлено позднее.
Специальное примечание:Будет добавлено позднее.
Сотрудничество
Пример нескольких принтеров похож на пример временного принтера, но он использует несколько потоков.
Записки
Чтобы использовать пример, вы должны установить novaPDF SDK, потому что пример требует его для работы. Скачать здесь:nova PDF SDK
Исходный код
cpp // HelloWorld.cpp #include "stdafx.h" //Include novaPDF headers #include "..\..\..\include\novaOptions.h" #include "..\..\..\include\novaEvents.h" //NovaPdfOptions #include "..\..\..\include\novapi.h" #include "nova.h" //name of novaPDF Printer Demo #define PRINTER_NAME1 L"novaPDF 10 temporary printer1" #define PRINTER_NAME2 L"novaPDF 10 temporary printer2" #define PRINTER_NAME3 L"novaPDF 10 temporary printer3" #define PORT_NAME1 L"novaPDF10temp1" #define PORT_NAME2 L"novaPDF10temp2" #define PORT_NAME3 L"novaPDF10temp3" #define FILE_NAME1 L"first.pdf" #define FILE_NAME2 L"second.pdf" #define FILE_NAME3 L"third.pdf" //text to be written in the PDF file #define PDF_TEXT L"Hello world!" //PDF file name #define PDF_FILE_NAME L"HelloWorld.pdf" //Print profile name #define PROFILE_NAME L"HelloWorld Profile" #define PROFILE_IS_PUBLIC 0 typedef struct _PRT_THREAD_PARAM { WCHAR wsPrinterName[255]; WCHAR wsPortName[255]; WCHAR wsFileName[255]; } PRT_THREAD_PARAM; DWORD WINAPI PrtThreadProc(LPVOID lpParameter); HANDLE CreatePrtThread(LPWSTR p_strPrinterName, LPWSTR p_wsPortName, LPWSTR p_wsFileName); //entry point for the console application int _tmain(int argc, _TCHAR* argv[]) { HANDLE hThread1 = CreatePrtThread(PRINTER_NAME1, PORT_NAME1, FILE_NAME1); HANDLE hThread2 = CreatePrtThread(PRINTER_NAME2, PORT_NAME2, FILE_NAME2); HANDLE hThread3 = CreatePrtThread(PRINTER_NAME3, PORT_NAME3, FILE_NAME3); if (hThread1 > 0){ //wait to stop processing events WaitForSingleObject(hThread1, INFINITE); CloseHandle(hThread1); } if (hThread2 > 0){ //wait to stop processing events WaitForSingleObject(hThread2, INFINITE); CloseHandle(hThread2); } if (hThread3 > 0){ //wait to stop processing events WaitForSingleObject(hThread3, INFINITE); CloseHandle(hThread3); } return 0; } HANDLE CreatePrtThread(LPWSTR p_strPrinterName, LPWSTR p_wsPortName, LPWSTR p_wsFileName) { PRT_THREAD_PARAM* pParams; DWORD dwThreadId; // Transmit parameters for thread: pipe handle and PDF temp file name pParams = (PRT_THREAD_PARAM*)GlobalAlloc(LPTR, sizeof(PRT_THREAD_PARAM)); wcscpy_s(pParams->wsPrinterName, p_strPrinterName); wcscpy_s(pParams->wsPortName, p_wsPortName); wcscpy_s(pParams->wsFileName, p_wsFileName); // Create the thread HANDLE hThread =CreateThread( NULL, // no security attribute 0, // default stack size (LPTHREAD_START_ROUTINE) PrtThreadProc, (LPVOID) pParams, // thread parameter 0, // not suspended &dwThreadId); // returns thread ID return hThread; } DWORD WINAPI PrtThreadProc(LPVOID lpParameter) { HRESULT hr = S_OK; //initialize COM hr = CoInitialize(NULL); if (FAILED (hr)) { MessageBox(NULL, L"Failed to initialize COM", L"novaPDF", MB_OK); return hr; } // Read thread's parameter: a handle to a pipe instance and the name of the temporary PDF file PRT_THREAD_PARAM* pParams = ((PRT_THREAD_PARAM*)lpParameter); INovaPdfOptions10 *pNova = 0; hr = CoCreateInstance(__uuidof(NovaPdfOptions10), NULL, CLSCTX_INPROC_SERVER, __uuidof(INovaPdfOptions10), (LPVOID*) &pNova); if (FAILED(hr)) { MessageBox(NULL, L"Failed to create novaPDF COM object", L"novaPDF", MB_OK); return hr; } //if you have an application license for novaPDF SDK, call the RegisterLicenseKey() function //hr = pNova->RegisterLicenseKey(<register name>, <license key>, <application name>); if (SUCCEEDED(hr)) { //add temporary printer //8501 is default service port, check next registry key: //HKEY_LOCAL_MACHINE\SOFTWARE\Softland\novaPDF 10\ServicePort //nPdfSdk10_Softland is the default OEMID for novaPDF SDK change it with your license OEMID pNova->AddNovaPrinter(pParams->wsPrinterName, pParams->wsPortName, L"nPdfSdk10_Softland", L"8503", L""); // set optional PDF settings LPWSTR pwsNewProfileID = NULL; //create a new profile with default settings hr = pNova->AddProfile(PROFILE_NAME, PROFILE_IS_PUBLIC, &pwsNewProfileID); //load the newly created profile if (SUCCEEDED(hr) && pwsNewProfileID) { hr = pNova->LoadProfile(pwsNewProfileID); } else { pNova->Release(); return hr; } if (SUCCEEDED(hr) && pwsNewProfileID) { // set novaPDF options // set resulting file name pNova->SetOptionLong(NOVAPDF_SAVE_FOLDER_TYPE, SAVEFOLDER_CUSTOM); pNova->SetOptionLong(NOVAPDF_SAVE_LOCATION, LOCATION_TYPE_LOCAL); pNova->SetOptionLong(NOVAPDF_SAVE_FOLDER_TYPE, SAVEFOLDER_CUSTOM); pNova->SetOptionString(NOVAPDF_SAVE_FOLDER, L"C:\\temp\\novaPDF"); pNova->SetOptionString(NOVAPDF_SAVE_FILE_NAME, pParams->wsFileName); //do not show prompt dialog pNova->SetOptionLong(NOVAPDF_SAVE_PROMPT_TYPE, PROMPT_SAVE_NONE); //if file exists, override pNova->SetOptionLong(NOVAPDF_SAVE_FILEEXIST_ACTION, FILE_CONFLICT_STRATEGY_AUTONUMBER_NEW); //do not open pNova->DisableActionType(NOVA_ACTION_OPEN); //save profile changes hr = pNova->SaveProfile(); //set as active profile for printer pNova->SetActiveProfile(pwsNewProfileID); HANDLE hPrinter; BOOL bTimeout; PDEVMODEW pDevmode = NULL; PRINTER_DEFAULTS pd = { NULL, NULL, PRINTER_ACCESS_USE }; for (int i = 1; i <= 10; i++) { //start print job if (OpenPrinter(pParams->wsPrinterName, &hPrinter, &pd)) { //register to wait for a nova event - wait until PDf is finished pNova->RegisterNovaEvent(L"NOVAPDF_EVENT_START_DOC"); //get default printer DEVMODE int nSize = DocumentProperties(NULL, hPrinter, pParams->wsPrinterName, NULL, NULL, 0); pDevmode = (PDEVMODEW)LocalAlloc(LPTR, nSize); DocumentProperties(NULL, hPrinter, pParams->wsPrinterName, pDevmode, NULL, DM_OUT_BUFFER); //set page size in DEVMODE pDevmode->dmPaperSize = DMPAPER_USER; pDevmode->dmPaperLength = 2970;//5940; pDevmode->dmPaperWidth = 2100;//4200; pDevmode->dmFields = DM_PAPERSIZE | DM_PAPERLENGTH | DM_PAPERWIDTH; DocumentProperties(NULL, hPrinter, pParams->wsPrinterName, pDevmode, pDevmode, DM_IN_BUFFER | DM_OUT_BUFFER); //Print a page HDC hDC = CreateDC(L"", pParams->wsPrinterName, NULL, pDevmode); DOCINFO docInfo = {sizeof(DOCINFO)}; // PDF document name and path docInfo.lpszDocName = PDF_FILE_NAME; StartDoc(hDC,&docInfo); StartPage(hDC); // Draw text on page TextOut(hDC, 100, 80, PDF_TEXT, (int) wcslen(PDF_TEXT)); EndPage(hDC); EndDoc(hDC); DeleteDC(hDC); LocalFree(pDevmode); ClosePrinter(hPrinter); pNova->WaitForNovaEvent(-1, &bTimeout); } } //delete profile pNova->DeleteProfile(pwsNewProfileID); CoTaskMemFree(pwsNewProfileID); } //delete temporarry printer pNova->DeleteNovaPrinter(pParams->wsPrinterName); //release NovaPdfOptions pNova->Release(); } return 0; }