paint Image on PDF.

Added by Ron Tidwell 6 months ago

I am creating another PDF that includes a bar code image on it.

When running I get follow errors:

[2017-Mar-23 10:51:42.029652] 14723 - [info] "WebRequest: took 0.37ms"
/home/rtidwell/PDF/RTidwell/BarImage.png
[2017-Mar-23 10:51:44.908575] 14723 [/ eSGwaXnoToH7g5UB] [error] "Wt: error during event handling: WPdfImage::drawImage(): cannot load image: ?_=file%3a///home/rtidwell/PDF/RTidwell/BarImage.png&wtd=eSGwaXnoToH7g5UB"

Wt::WPainter::Image Documentation say its want a URL. So I used Wt::Resource to create the URL.

Wt::WFileResource *BarImage = new  WFileResource(BarcodeFile);
BarImage->setInternalPath(Path);
BarImage->setMimeType("image/png");
BarImage->setDispositionType(Wt::WResource::Inline);

If create an anchor and set this link to it, the anchor works and image is displayed in the browser. Below is code used trying to paint the image.

Wt::WPainter::Image BarCode = Wt::WPainter::Image(BarImage->url(),BarcodeFile);
Wt::WPointF BarPoint = Wt::WPointF(40,cury);
cury += 30;
painter.drawImage(BarPoint,BarCode);

I am sure I am doing some stupid any help would be appreciated.

Thank you,
Ron


Replies (2)

RE: paint Image on PDF. - Added by Koen Deforche 6 months ago

Hey Ron,

The WPainter API has some general requirements (an image URL for use in e.g. SVG/WCanvasPaintDevice, and a local URL to be able to determine the image size necessary for some implementations), but the PDF target adds as a requirement that the image must be a available locally (it will not download an image through the given URL).

So you need to pass an image either as a file ("/tmp/image.png") or as a data URL (data:base64...).

Koen

RE: paint Image on PDF. - Added by Ron Tidwell 6 months ago

Thank you!!! That worked.

Ron

(1-2/2)