Julian,
I wrote a pass-through function in ReportBuilder to render each page of a PDF and display in a ppImage. However the resulting image seems to lose some quality compared to what your demo app does with the image. And this is the raw image saved to file (2nd to last line). Any tips on getting 100% image quality?
Thanks.
Code
lBitmap := TBitmap.Create;
lBitmap.Width:=816;//408;//817;
lBitmap.Height:=1056;//523;//1057;
//lBitmap.
lCanvas := lBitmap.Canvas;
//How do I load the pdf from the stream?
zTempfilename := ExtractFilePath(ParamStr(0))+'tempPDF.pdf';
zStream.SaveToFile(zTempfilename);
wpview_pdfWorkbenchLoad(workbench, PWideChar(zTempfilename), 0, 0);
wpview_pdfWorkbenchCommand( workbench, COMPDF_PrintHDCSetXRes, Floor(-lBitmap.Width), '', nil );
wpview_pdfWorkbenchCommand( workbench, COMPDF_PrintHDCSetYRes, Floor(-lBitmap.Height), '', nil );
wpview_pdfWorkbenchCommand( workbench, COMPDF_PrintHDC_SelectPage, lsPDFPageNo-1, '', nil );//Select the page
wpview_pdfWorkbenchCommand( workbench, COMPDF_UseGDIPainter, -1, '', nil);//use GDI
wpview_pdfWorkbenchCommand( workbench, COMPDF_PrintUseBitmaps, 1, '', nil);//2020-01-03 Dan. Improve quality?
lCanvas.Lock;
try
wpview_pdfWorkbenchCommand( workbench, COMPDF_PrintHDC_SelectedPage, 0, '', Pointer( lCanvas.Handle ));
finally
lCanvas.UnLock;
end;
//For Debugging lBitmap.SaveToFile(ExtractFilePath(ParamStr(0))+'PDF_Page_'+IntToStr(lsPDFPageNo)+'_.emf');
lsImage.Picture.Bitmap.Assign(lBitmap);
Alles anzeigen