2010-08-10 58 views
0

我試圖將RTF文檔轉換爲PDF。我有這樣的代碼:PDFCreator將打印TIFF而不是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; 
} 

運行此代碼示例,而不是直接創建它提示我有一個保存對話框中的PDF爲我提供的選項輸出只選擇TIFF文件的選項(這是不通緝)。有人能指引我走向正確的方向還是提供一些建議?

感謝,

尤利安

+0

它的PDFCreator庫是這樣嗎?有窗戶上幾 – 2010-08-10 15:15:01

+0

的PDFCreator:http://sourceforge.net/projects/pdfcreator/ – INS 2010-08-11 06:34:59

+0

好,到底它似乎是PDFCreator的莫名其妙有點「傻」。我們通過運行一個外部腳本來做我們想做的事情 - 儘管程序的C++部分完成了同樣的事情。 – INS 2010-09-02 18:37:09

回答

3

這只是一種猜測。我也有類似的問題 - 不使用時的PDFCreator編程(這是超出了我的能力),但使用它作爲我的標準時打印機打印到PDF文件。

首先我用了幾天,沒有任何問題。不是我安裝了它,而是我的合作伙伴。正如我所說...它只是工作,並創建漂亮的PDF文件。

然後,不知何故,有人我們的家用電腦上(我們使用它3種不同的人)必須改變了設置(可能inadvertedly),使其輸出TIFF,而不是PDF文件。對我而言,我的默認打印機被命名爲「PDFcreator」,它讓我困惑不已,爲什麼它突然想要創建TIFF。

同時我戳了很多在其所有設置的用戶界面,並學會了知道去哪裏找,如果出現錯誤。

在其左側樹狀面板中的最新版本列出了一個名爲「保存」的項目。如果選擇它,則可以配置默認文件名約定以及「標準保存格式」。在我的情況下,在下拉列表視圖中選擇了「TIFF」而不是「PDF」。看看你的代碼,你不知何故調用PDFCreator.exe(我不明白細節,但我可以在你的代碼中看到這個字符串)。我敢打賭,不知何故,您的代碼用於運行的用戶帳戶已將其標準保存格式設置爲TIFF。這可能是因爲你看看打印機設置(在我的Windows XP,我只需鍵入control printers,並右擊該PDFCreator的打印機名稱選擇屬性...),並沒有發現任何可疑的。

然而,存儲的PDFCreator它爲每個用戶設置到不同的位置,大概在%userprofile%\local settings\temp\pdfcreator\...,甚至在註冊表中......

+0

感謝您的提示,我會研究它。 – INS 2010-08-16 06:55:38

+0

我會將此作爲答案,但不幸的是,它不能解決我的問題。再次感謝您的嘗試(請參閱我對該問題的評論)。 – INS 2010-09-02 18:39:13