Das folgende Codefragment sendet Postscript-Inhalt an einen CutePDF Drucker (in pBuf
Puffer gespeichert):PDF Drucker PDF erzeugt nur dann, wenn Ausgabedateiname nicht
if (OpenPrinter(printerName, &hPrinter, NULL))
{
DOC_INFO_1 di1;
di1.pDatatype = L"RAW";
di1.pDocName = L"Raw print document";
di1.pOutputFile = NULL;
StartDocPrinter(hPrinter, 1, (LPBYTE)&di1);
StartPagePrinter(hPrinter);
DWORD dwWritten = 0;
WritePrinter(hPrinter, pBuf, dwBufSize, &dwWritten);
EndPagePrinter(hPrinter);
EndDocPrinter(hPrinter);
}
Während der Ausführung dieses Codes, erscheint ein Dialog wo ich den Namen der Ausgabedatei angeben (zB D:/out.pdf
), danach wird die PDF-Datei erzeugt. So weit, ist es gut. Die Probleme beginnen, wenn ich versuche, den Dateinamen Schritt zu vermeiden Angabe von Zeile 4 des Snippets zu ändern:
di1.pOutputFile = L"D:/out.pdf";
Solcher Code zeigt nicht den Dialog während seiner Ausführung (wie erwartet), aber das Ergebnis D:/out.pdf
isn In einer PDF-Datei ist es eine Kopie der PostScript-Datei, die an den Drucker gesendet wird (Kopie des Inhalts von pBuf
Puffer). PDF Writer verhält sich auf die gleiche Weise. Warum verhalten sich PDF-Drucker so und wie kann ich das gewünschte Verhalten erreichen (PDF-Datei generieren, ohne den Namen in der Benutzeroberfläche anzugeben)?