下面的代碼段發送的PostScript內容(保存在pBuf
緩衝液中)到CutePDF打印機PDF:PDF打印機生成僅當輸出文件名沒有設置
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);
}
該代碼的執行過程中,會出現一個對話框在那裏我指定輸出文件的名稱(例如D:/out.pdf
),然後生成pdf文件。到現在爲止還挺好。這些問題開始的時候我試圖通過改變片段的4號線,以避免文件名識別步驟:
di1.pOutputFile = L"D:/out.pdf";
這樣的代碼並不顯示其執行(如預期)中的對話框,但結果D:/out.pdf
ISN是pdf文件,它是發送到打印機的PostScript文件的副本(pBuf
緩衝區的內容的副本)。 PDF Writer的行爲方式相同。爲什麼PDF打印機以這種方式行事,我如何才能實現所需的行爲(生成PDF文件而無需在UI中指定其名稱)?