Bitte anmelden für besseres Erlebnis
Bitte anmelden für besseres Erlebnis
Aktionsregeln
1、Aktionszeit:{{ info.groupon.start_at }} ~ {{ info.groupon.end_at }}。
2、Gruppenkauf gültig bis:{{ info.groupon.expire_days * 24 }}Stunde。
3、Gruppenteilnehmer:{{ info.groupon.need_count }}Person。
Gruppenkaufinformationen
1、Ablauf: Beitreten/Starten, bezahlen, Mindestteilnehmer erreichen – Erfolg!
2、Bei Nichterreichen der Mindestteilnehmerzahl wird der Betrag zurückerstattet.
3、Mindestteilnehmer und Zeit variieren je nach Produkt.
novaPDF 11 Personal PDF-Erstellungsprogramm
novaPDF, Ihr leistungsstarkes PDF-Erstellerwerkzeug
novaPDF ist ein PDF-Drucker für Windows, mit dem Sie branchenstandard PDF-Dateien (durchsuchbar und optional PDF/A-kompatibel) einfach erstellen können.
Das Drucken in PDF war noch nie so einfach: Sie öffnen einfach Ihr Dokument, klicken auf „Drucken“ und wählen novaPDF als Drucker aus.
Mit novaPDF können Sie PDF-Dateien aus jedem druckbaren Dokument so einfach erstellen wie auf einen physischen Drucker. Seine intuitive Oberfläche macht es einfach für Anfänger zu bedienen, beinhaltet aber auch erweiterte Funktionen für fortgeschrittene Benutzer. Laden Sie die Testversion jetzt herunter und nutzen Sie sie bis zu 30 Tage kostenlos.
novaPDF ist mit folgenden Betriebssystemen kompatibel: Windows 11, 10, 8, 7, Vista (32/64 Bit); Server 2022, 2019, 2016, 2012, 2008R2
Hier sind einige der Vorteile, die Sie bei der Verwendung von novaPDF erhalten:
Hauptmerkmale
Mit novaPDF können Sie alle Arten von druckbaren Dokumenten (z.B. DOCX, XLSX, PPTX, PUBX, HTML, TXT,...) in PDF konvertieren und über die Druckertreiberschnittstelle auf ihre Funktionen zugreifen.
Wenn novaPDF installiert ist, klicken Sie einfach auf die Schaltfläche "Drucken" in einer der Dokumente zugeordneten Windows-Anwendungen, um ein PDF zu erstellen. Sie können auch die Startoberfläche von novaPDF verwenden.
novaPDF kommt mit Add-Ins für alle Microsoft Office-Anwendungen: Word, Excel, PowerPoint, Publisher, Visio und Outlook. Es bedeutet, von einer Office-Anwendung auf einen Klick in eine PDF zu konvertieren.
Einer der Hauptvorteile des Add-ons ist die Möglichkeit, versteckte Hyperlinks zu konvertieren und Lesezeichen einfach zu konvertieren.
Sie können Ihr PDF-Dokument schützen (256-Bit-AES-Verschlüsselung), indem Sie den Empfänger bitten, ein Passwort einzugeben, um den Inhalt in einer PDF anzuzeigen, zu drucken oder zu kopieren/einzufügen.
Sie können festlegen, ob Sie PDF anzeigen, drucken, ändern, kopieren oder kommentieren können. Darüber hinaus können Sie eine digitale Signatur anwenden, um die Echtheit eines PDF-Dokuments zu bestätigen.
Offizielle Website:https://www.novapdf.com/compare-editions.html
Downloadzentrum:https://novapdf.apsgo.cn
Ersatz-Download:N/A
Lieferzeit:Manuelle Bearbeitung
Betriebsplattform:Windows
Schnittstellensprache:Unterstützung für chinesische Schnittstelle, mehrere Sprachen sind verfügbar.
Aktualisierung:Unterstützung für kleine Version-Upgrades (v11.x)
Testen Sie vor dem Kauf:Kostenlose Testversion für 30 Tage vor dem Kauf.
Wie wir die Ware erhalten:Nach dem Kauf werden die Aktivierungsinformationen per E-Mail an das Postfach der Bestellung gesendet und Sie können den entsprechenden Produktaktivierungscode im persönlichen Center, Meine Bestellung, ansehen.
Anzahl der Geräte:Ein Computer kann installiert werden.
Computer ersetzen:Der ursprüngliche Computer wird deinstalliert und der neue Computer aktiviert.
Aktivierung:Zu hinzufügen.
Besondere Hinweise:Zu hinzufügen.
Referenzen:https://www.novapdf.com/faq.html
Kooperationsanfrage
Ein Beispiel für mehrere Drucker ähnelt einem Beispiel für einen temporären Drucker, verwendet jedoch mehrere Threads.
Notizen
Um das Beispiel zu verwenden, müssen Sie das novaPDF SDK installieren, da das Beispiel es benötigt, um ausgeführt zu werden. Klicken Sie hier zum Download:nova PDF SDK
Quellcode
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; }