PowerPdfでGrayscaleのJPEG画像を貼り付けるには

解決


けーま  2006-02-14 05:43:04  No: 20016

PowerPdfで白黒のJPEGファイルをページに貼り付ける処理をして
作成したpdfファイルを開くとエラーになります。
どなたか解決策をご存じありませんか?

//ファイルリストボックスに表示した*.jpgファイルをまとめて
//一つのpdfファイルにする例題です
//最後の行でAcrobat Reader ver.5.0.5が立ち上がり pdfを開くが、
//「画像のデータに不足があります」というエラーが出て、
//白黒の同じ画像が横一列に3つ並んで表示されます。

  PReport1->FileName="test.pdf";
  PReport1->BeginDoc();
  for (i = 0; i < FileListBox1->Items->Count; i++)
  {
      PRJpegImage1->Picture->LoadFromFile
                           (FileListBox1->Items->Strings[i]);
      PReport1->Print(PRPage1);
    }
  }
  PReport1->EndDoc();
  ShellExecute(0, "OPEN", "test.pdf",NULL, NULL, SW_SHOW);


けーま  2006-02-15 07:19:00  No: 20017

自己解決できました。
PdfJpegImage.pasの若干の変更が必要でした。
おさわがせしました。

// CreateImage
function TPdfJpegImage.CreateImage(AImage: TGraphic): TPdfImage;
...........
      if TJpegImage(AImage).Grayscale then
        AddItem('ColorSpace', TPdfName.CreateName('DeviceGray'))
      else
        AddItem('ColorSpace', TPdfName.CreateName('DeviceRGB'));
...........


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加