我有将.tif转换为.pdf的问题。基本上对于水平和垂直DPI均为96的每个文档,转换仅捕获文档的左上角 - 它非常拉伸。但是,如果文档的DPI 204为水平,196为Vertical,则表示正确显示。这是我需要在我的代码(下面)中解决的问题,还是我需要更新文档的每个页面的DPI分辨率(我必须以编程方式进行),以便在将其转换为dpi之前dpi为204和96 PDF。
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()
答案 0 :(得分:2)
PDF页面没有任何DPI(矢量格式)。
使用Windows,对于没有可用DPI信息的图像,通常会获得96 DPI。
如果使用200 DPI扫描图像,但Windows报告96 DPI,则PDF中的图像将具有双倍大小,您将只看到扫描图像的四分之一(假设您将扫描的A4页面绘制到新的A4页面上)。
204/196 DPI听起来像传真格式,所以我假设我们正在谈论扫描页面。
Hans Passant已经为您提供了解决方案:在调用DrawImage
时指定目标矩形,您可以让所有图像都填满整个页面。