2010-08-10 2 views
0

RTF 문서를 PDF로 변환하려고합니다. 이 코드를 가지고 :PDFCreator가 PDF 대신 TIFF를 인쇄합니다.

// 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; 
} 

하지 않은 (만 TIFF 파일을 선택할 수있는 옵션이 나에게 출력 할 수있는 옵션을 제공하는이 코드 샘플을 실행하는 대신 직접이 저장 대화 상자가 나에게 묻는 PDF를 생성 싶었다). 누군가가 나를 올바른 방향으로 인도하거나 제안을 할 수 있습니까?

감사합니다,

이 울리

+0

입니다 ...

그러나,을 PDFCreater 아마 %userprofile%\local settings\temp\pdfcreator\...에서 다른 위치로 각 사용자에 대한 설정을 저장, 또는 레지스트리에? Windows에 몇 가지가 있습니다 –

+0

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

+0

글쎄, 결국 PDFCreator가 어떻게 든 조금 어리석은 것처럼 보입니다. 우리는 외부 스크립트를 실행하여 우리가 원하는 것을했습니다. 그러나 프로그램의 C++ 부분은 절대적으로 똑같습니다. – INS

답변

3

이것은 단지 추측 ... 나는 비슷한 문제가 있었다 - 내 표준으로 사용하는 경우 (이 내 능력을 넘어) 프로그램을 PDFCreater를 사용하지만,하지 않을 때 프린터로 PDF로 인쇄하십시오.

처음에는 아무 문제없이 며칠 동안 사용했습니다. 나는 그것을 설치하지 않았지만 내 파트너. 말했듯이 ... 방금 작업하여 아름다운 PDF를 만들었습니다.

그렇다면 가정용 컴퓨터 (우리는 3 명의 다른 사람이 사용하는)가 PDF 대신 TIFF를 출력하도록 설정을 변경해야합니다 (어쩌면 부주의로). 필자의 기본 프린터 이름은 "PDFcreator"였고 갑자기 TIFF를 만들려고하는 이유를 혼란스럽게 만들었습니다.

나는 모든 설정의 사용자 인터페이스에서 많은 것을 털어놨다. 그리고 뭔가 잘못되었을 때 어디에서 볼 것인지를 배웠다.

왼쪽 트리보기 패널의 최신 버전에는 "저장"이라는 항목이 나열됩니다. 이를 선택하면 "표준 저장 형식"뿐만 아니라 기본 파일 이름 규칙을 구성 할 수 있습니다. 내 경우에는 드롭 다운 목록보기에서 "TIFF"대신 "PDF"가 선택되었습니다.

코드를 보면 어떻게 든 PDFCreator.exe (자세한 내용은 알 수 없지만 코드에서이 문자열을 볼 수 있음)이라고합니다. 내기가이 방향으로 갈 것입니다. 어떻게 든 코드가 실행되는 데 사용하는 사용자 계정에 표준 저장 형식이 TIFF로 설정되어 있습니다. 당신이 프린터 설정을 보았을 수도 있습니다. (내 Windows XP에서는 control printers을 입력하고 속성 ...을 선택하려면 PDFCreator printername을 rightclick하고 의심스러운 것을 찾으십시오. 이 어떤을 PDFCreater 라이브러리

+0

힌트를 보내 주셔서 감사합니다. – INS

+0

답변으로 사용 하겠지만 불행히도 내 문제는 해결되지 않습니다. 노력해 주셔서 다시 한번 감사드립니다 (질문에 대한 내 의견을 참조하십시오). – INS

관련 문제