检索具有原始大小和 dpi 的 pdf 页面位图



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

示例:bmp 是宽度为 1275,高度为 1651 且 dpi 为 150 的Bitmap。我使用此位图来创建页面。当我使用 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);

您可以调用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页面,其中包含图像的真实物理尺寸。

最新更新