1

我想知道为什么我从一个大小/dpi 与我用来创建页面的位图不同的页面获取位图。

示例:bmp宽度Bitmap为 1275,高度为 1651,dpi 为 150。我使用此位图创建页面。当我在代码末尾使用 PDFDraw 检索位图时,Bitmap b其宽度为 2657,高度为 3440,分辨率为 150 dpi。为什么这发生了变化,我怎样才能找回我的原始位图?

//create a page
var imgRect = new Rect(0, 0, bmp.Width, bmp.Height);
pdftron.PDF.Page _currentPage = convertedPdf.PageCreate(imgRect);
imgRect.Dispose();

//start writing to a page                                               
elementWriter.Begin(_currentPage, ElementWriter.WriteMode.e_underlay, false);

//write the image   
var element = elementBuilder.CreateImage(_currentImg, new pdftron.Common.Matrix2D(bmp.Width, 0, 0, bmp.Height, 0, 0));                       
elementWriter.WritePlacedElement(element);

//cleanup
_currentImg.Dispose();

//add the page to the pdf
convertedPdf.PagePushBack(_currentPage);

//just a test for retrieving the page later on
PDFDraw drawer = new PDFDraw();
Bitmap b = drawer.GetBitmap(_currentPage);
4

1 回答 1

0

您可以调用Convert.ToPDF(pdfdoc, path_to_image)并简单地传递图像的路径,PDFNet 将为您完成所有计算,并在最新版本中自动旋转。

特别是您的页面大小计算已关闭。它应该是

var imgRect = new Rect(0, 0, bmp.Width / 150.0 * 72.0, bmp.Height / 150.0 * 72.0);

因此,您将获得具有图像真实物理尺寸的 PDF 页面。

于 2018-01-31T19:52:34.663 回答