문제

PDF 문서의 임의의 페이지 (예 : 반드시 첫 번째 일 필요는 없음)에서 스냅 샷 이미지를 만들고 싶습니다. 이를위한 무료 도구가 있습니까? 델파이를 사용하고 있습니다.
티아
스티븐

도움이 되었습니까?

해결책

스티븐

나는 몇 년 전에 같은 문제를 겪었고 유일한 신뢰할 수있는 솔루션은 Acrobat Professional (7)을 구입하여 페이지를 추출하고 클립 보드에 복사 한 다음 그로부터 축소판을 만드는 것입니다. PDF 문서에서 페이지를 추출 할 수있는 무료 방법이 있는지 확인하고 싶습니다.

    procedure TFormMain.LoadPDFDoc(Filename: TFilename; var Bitmap: TBitmap);
var
  PDPage : variant;
  PdApp, PdDoc, PdRect: variant;
begin
  try

    PdApp  := CreateOleObject('AcroExch.App');
    PdDoc  := CreateOleObject('AcroExch.PDDoc');
    PdRect := CreateOleObject('AcroExch.Rect');

    //Open the pdf document
    PDDoc.Open(FileName);
    PDPage := PDDoc.AcquirePage(0);

    //Define the rectangle to fit the page
    PDRect.Top    := 0;
    PDRect.Left   := 0;
    PDRect.Right  := PDPage.GetSize.x;
    PDRect.Bottom := PDPage.GetSize.y;

    //Set the bitmap proportions
    with Bitmap do
      begin
        Width  := PDRect.Right;
        Height := PDRect.Bottom;
      end;

    //Copy the rectangle to the ClipBoard
    PDPage.CopyToClipboard(PDRect, 0, 0, 100);
    if not VarIsEmpty(PDPage) then
      PDPage := UnAssigned;

    //Close the pdf document
    PDDoc.Close;

    //Paste the image from the clipboard
    with Bitmap do
      begin
        LoadFromClipboardFormat(CF_BITMAP, ClipBoard.GetAsHandle(CF_BITMAP), 0);
        PixelFormat := pf24Bit;
        HandleType := bmDIB;
      end;

  Except on E: Exception do
    ShowMessage(E.Message);
  end;
end;

안부, 피터

다른 팁

PDFTK 및 ImagemAgick/Ghostscript를 사용하여 2 단계 로이 작업을 수행 할 수 있습니다.

1 단계 : 관심있는 페이지와 함께 새 PDF 파일을 만듭니다.

pdftk.exe file.pdf cat 2 output page2_only.pdf

2 단계 : 새 PDF를 JPG로 변환합니다.

convert -geometry 1600x1600 -density 200x200 -quality 100 page2_only.pdf page_snapshot.jpg

전환하다 imagemagick 명령입니다.

Imagemagick은 이것이 작동하기 위해 고스트 스크립트를 설치해야합니다. 이것을 테스트했을 때, PDFTK로 인한 PDF의 유효하지 않은 형식에 대해 불평했지만 이는 출력에 영향을 미치지 않는 것 같습니다.

여기서 PDF를 관리하기위한 일부 델파이 관련 도구를 비교합니다. 상위 9 PDF 관리 도구. 지금까지 나는 직접 사용하지 않았으므로 추천을 할 수 없습니다.

도 있습니다 pdflib lite 오픈 소스입니다.

추신: "원샷"(매뉴얼) 솔루션을 원하시는 경우 명확히 할 수 있습니까? 귀하의 질문에 Delphi를 언급하지만 Pieter Van Wyk에 대한 귀하의 의견에서 수동 솔루션에 만족하는 것 같습니다. 다른 사람들과 마찬가지로, 매뉴얼을 위해 Ghostview (UI)가있는 Ghostscript (엔진)§. 고스트 스크립트에는 API가 있습니다 델파이가 액세스 할 수 있습니다, 그러나 상용 프로그램으로 배포하는 데 문제가있을 수 있습니다 (크기, 라이센스 등).

§ Ghostview보다 먼저 Ghostscript를 설치해야합니다. PDF, 메뉴 파일 / 변환 / AS 장치를 선택하십시오 PDFWRITE (또는 필요한 다른 이미지 형식 / 선호) / 해상도를 선택하십시오 (72 화면에 충분할 수 있음) / 페이지 번호 / OK / 선택 폴더 및 파일 이름을 선택하십시오. 저장하면 끝났습니다.

체크 아웃 할 시간의 가치가있을 수 있습니다 QuickPDF 라이브러리. 나는 약 5 년 동안 도서관을 사용했습니다. 그것은 원래 출판사에 의한 길고 고통스러운 포기를 통해 그것에 의해 서있는 훌륭한 지원 그룹을 보유하고 있으며, 현재 PDF 세계에서 수년간 중요한 이름을 가진 사람의 지원을 받고 있습니다. Karl de Abrew. 다운로드 페이지에 제품에 대한 다운로드 가능한 참조 설명서가 있으며 Clonepage 또는 Something과 같은 것이 있다고 생각합니다. 어쨌든, 매뉴얼에서 답을 찾을 수 없다면, 그들의 지원에 연락하면 아마도 당신이하려는 일을 성취하는 방법에 대한 완전한 설명을 얻게 될 것입니다.

죄송합니다. 방금 "무료"요구 사항을 알았습니다. 그들의 도구 상자는 249 달러에 상당히 가격이 책정되며 프로젝트가 판매 할 것이라면 적어도 사용자에게 무료이거나 적어도 별도로 가격이 책정되지 않을 것입니다.

고해상도 스냅 샷을 찾고 있지 않다면 Acrobat의 ActiveX 구성 요소로 PDF 파일을 특별 형식 (전체 화면, 테두리 없음)으로 열면 페이지로 이동 한 다음 화면의 스크린 샷. 당신은 그 양식을 즉시 닫을 수 있으므로 단지 깜박이고 사라집니다.

Imagemagick은 또한 Windows에서 사용될 수 있으며 (Shellexec을 사용하여 숨겨져 있음) JPEG (또는 기타 이미지 유형)를 만들 수있는 매우 간단한 명령이 있습니다.

명령 줄의 고스트 스크립트 (ActiveX Compenent 없음) gswin32c.exe .... 매개 변수 ..... (문서 참조, 매우 쉽습니다)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top