Le code suivant envoie le contenu PostScript (enregistré dans pBuf
tampon) à une imprimante CutePDF:PDF imprimante génère PDF uniquement lorsque le nom du fichier de sortie n'est pas réglé
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);
}
Au cours de l'exécution de ce code, une boîte de dialogue apparaît où je spécifie le nom du fichier de sortie (par exemple D:/out.pdf
), après que le fichier pdf est généré. Jusqu'ici tout va bien. Les problèmes commencent quand je suis en train d'éviter le nom de fichier étape de spécification en changeant la ligne 4 de l'extrait:
di1.pOutputFile = L"D:/out.pdf";
tel code ne montre pas la boîte de dialogue lors de son exécution (comme prévu), mais le résultat D:/out.pdf
ISN 't un fichier pdf, c'est une copie du fichier PostScript envoyé à l'imprimante (copie du contenu du tampon pBuf
). PDF Writer se comporte de la même manière. Pourquoi les imprimantes PDF se comportent-elles de cette manière et comment puis-je obtenir le comportement nécessaire (générer un fichier PDF sans spécifier son nom dans l'interface utilisateur)?