.net 从tiff转换为Pdf时,DPI分辨率会引起问题
我在将.tif转换为.pdf时遇到问题。基本上,对于每个文档,无论是水平还是垂直,DPI都是96,转换只捕获文档的左上角-它非常紧张。然而,在文档具有用于水平的DPI 204和用于垂直的DPI 196的情况下,它被正确地显示。这是我需要在我的代码(如下)中解决的问题,还是我需要更新文档每一页的DPI分辨率(我必须通过编程进行更新),以便在转换为pdf之前DPI为204和96.net 从tiff转换为Pdf时,DPI分辨率会引起问题,.net,pdfsharp,.net,Pdfsharp,我在将.tif转换为.pdf时遇到问题。基本上,对于每个文档,无论是水平还是垂直,DPI都是96,转换只捕获文档的左上角-它非常紧张。然而,在文档具有用于水平的DPI 204和用于垂直的DPI 196的情况下,它被正确地显示。这是我需要在我的代码(如下)中解决的问题,还是我需要更新文档每一页的DPI分辨率(我必须通过编程进行更新),以便在转换为pdf之前DPI为204和96 Dim destination As String = FileName & "pdf" Dim
Dim destination As String = FileName & "pdf"
Dim MyImage As Image = Image.FromFile(FileName & "tif")
Dim doc As New PdfDocument()
For PageIndex As Integer = 0 To MyImage.GetFrameCount(FrameDimension.Page) - 1
MyImage.SelectActiveFrame(FrameDimension.Page, PageIndex)
Dim img As XImage = XImage.FromGdiPlusImage(MyImage)
Dim page = New PdfPage()
If img.PixelWidth > img.PixelHeight Then
page.Orientation = PageOrientation.Landscape
Else
page.Orientation = PageOrientation.Portrait
End If
doc.Pages.Add(page)
Dim xgr As XGraphics = XGraphics.FromPdfPage(doc.Pages(PageIndex))
xgr.DrawImage(img, 0, 0)
Next
doc.Save(destination)
doc.Close()
MyImage.Dispose()
PDF页面没有任何DPI(矢量格式) 在Windows中,对于没有DPI信息的图像,通常可以获得96 DPI。 如果图像以200 DPI扫描,但Windows报告为96 DPI,则PDF中的图像大小将是原来的两倍,并且您只能看到扫描图像的四分之一(假设您将扫描的A4页面绘制到新的A4页面上)。
204/196 DPI听起来像传真格式,所以我假设我们讨论的是扫描页面
Hans Passant已经为您提供了解决方案:在调用
DrawImage
时指定目标矩形,您可以让所有图像填充整个页面。PDF页面没有任何DPI(矢量格式)
在Windows中,对于没有DPI信息的图像,通常可以获得96 DPI。
如果图像以200 DPI扫描,但Windows报告为96 DPI,则PDF中的图像大小将是原来的两倍,并且您只能看到扫描图像的四分之一(假设您将扫描的A4页面绘制到新的A4页面上)。204/196 DPI听起来像传真格式,所以我假设我们讨论的是扫描页面
Hans Passant已经为您提供了解决方案:在调用
DrawImage
时指定目标矩形,您可以让所有图像填充整个页面。使用DrawImage(XImage,rectangle)重载以获得可预测的大小。@HansPassant-不确定将其包含在何处。@HansPassant感谢它的使用!使用DrawImage(XImage,Rectangle)重载获得可预测的大小。@HansPassant-不确定在哪里包含此内容。@HansPassant感谢它的使用!是的,我试图转换的文档主要是传真文档。大多数是204 x 96,但其中一些是96 x 96,这导致了问题。是的,我试图转换的文件大多是传真文件。大多数是204乘96,但其中一些是96乘96,这导致了问题。