2010-08-10 4 views
0

Je suis en train de convertir un document RTF en PDF. J'ai ce code:PDFCreator va imprimer TIFF au lieu de PDF

// TestCOMPDF.cpp : Defines the entry point for the console application. 
// 

#include <windows.h> 
#include <tchar.h> 
#include <objbase.h> 
#include <atlbase.h> 

#import "MSVBVM60.DLL" rename ("EOF", "VBEOF"), rename ("RGB", "VBRGB") //if you don't use this you will be in BIG trouble 
#import "PDFCreator.exe" 

int _tmain(int argc, _TCHAR* argv[]) 
{ 

CoInitialize(NULL); 
{ 

    CComPtr<PDFCreator::_clsPDFCreator> pdfObject; 
    HRESULT hr = pdfObject.CoCreateInstance(L"PDFCreator.clsPDFCreator"); 
    pdfObject->cStart("/NoProcessingAtStartup", 1); 

    PDFCreator::_clsPDFCreatorOptionsPtr opt = pdfObject->GetcOptions(); 

    opt->UseAutosave = 1; 
    opt->UseAutosaveDirectory = 1; 
    opt->AutosaveDirectory = "c:\\temp\\"; 
    opt->AutosaveFormat = 0; // for PDF 
    opt->AutosaveFilename = "gigi13"; 
    pdfObject->PutRefcOptions(opt); 
    pdfObject->cClearCache(); 
    _bstr_t DefaultPrinter = pdfObject->cDefaultPrinter; 
    pdfObject->cDefaultPrinter = "PDFCreator"; 
    hr = pdfObject->cPrintFile("c:\\temp\\RTF\\garage.rtf"); 

    pdfObject->cPrinterStop = false; 

    while(true) 
    { 
    printf("sleep\n"); 
    Sleep(1000); 
    if(pdfObject->cCountOfPrintjobs == 0) 
    break; 
    } 

    printf("done\n"); 

    pdfObject->cPrinterStop = true; 

    pdfObject->cDefaultPrinter = DefaultPrinter; 
} 

CoUninitialize(); 

return 0; 
} 

Lorsque vous exécutez cet exemple de code au lieu de créer directement le PDF il me demande avec une boîte de dialogue Enregistrer me offrant la possibilité à la sortie uniquement avec la possibilité de choisir un fichier TIFF (ce qui est voulait). Quelqu'un peut-il me diriger dans la bonne direction ou offrir quelques suggestions?

Merci,

Iulian

+0

quelle bibliothèque PDFCreator est-ce? Il y en a quelques-uns sur Windows –

+0

PDFCreator: http://sourceforge.net/projects/pdfcreator/ – INS

+0

Eh bien, à la fin, il semble que le PDFCreator est en quelque sorte un peu «stupide». Nous avons fait ce que nous voulions en exécutant un script externe - bien que la partie C++ du programme ait fait exactement la même chose. – INS

Répondre

3

Ce n'est une supposition ... J'ai eu un problème similaire - pas lorsque vous utilisez PDFCreator programme (ce qui est au-delà de mes capacités), mais lorsque vous l'utilisez comme ma norme imprimante à imprimer en PDF.

D'abord je l'ai utilisé pendant quelques jours sans aucun problème. Je ne l'avais pas installé, mais mon partenaire. Comme je l'ai dit ... ça a juste marché et créé de beaux PDF. Puis, d'une manière ou d'une autre, quelqu'un sur notre ordinateur à la maison (nous sommes 3 personnes différentes qui l'utilisent) doit avoir changé le réglage (peut-être par inadvertance) pour le rendre en format TIFF au lieu de PDF. Pour moi, mon imprimante par défaut s'appelait "PDFcreator" et ça m'a déconcerté parce qu'elle voulait créer des fichiers TIFF.

Pendant ce temps, j'ai beaucoup avancé dans l'interface utilisateur de tous ses paramètres, et j'ai appris à savoir où chercher en cas de problème.

La dernière version dans son panneau d'arborescence de gauche répertorie un élément nommé "Enregistrer". Si vous le sélectionnez, vous pouvez configurer les conventions de nom de fichier par défaut ainsi que "Format de sauvegarde standard". Dans mon cas, dans la liste déroulante, il y avait "TIFF" sélectionné au lieu de "PDF".

En regardant votre code, vous appelez en quelque sorte PDFCreator.exe (je ne comprends pas les détails, mais je peux voir cette chaîne dans votre code). Mon pari irait vers ceci: d'une manière ou d'une autre, le compte d'utilisateur que votre code utilise pour courir sous a son format de sauvegarde standard mis en TIFF. Il se peut que vous regardiez les paramètres de l'imprimante (sur mon Windows XP, je tape simplement control printers, et je clique avec le bouton droit PDFCreator pour sélectionner Propriétés ...) et ne trouve rien de suspect.

Cependant, PDFCreator stocke ses paramètres pour chaque utilisateur dans un autre emplacement, probablement %userprofile%\local settings\temp\pdfcreator\..., ou même dans le registre ...

+0

Merci pour l'indice, je vais regarder dans le. – INS

+0

Je vais prendre cela comme une réponse, mais malheureusement, il ne résout pas mon problème. Merci encore d'avoir essayé (voir mon commentaire à la question). – INS

Questions connexes