Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从tiff转换为Pdf时,DPI分辨率会引起问题_.net_Pdfsharp - Fatal编程技术网

.net 从tiff转换为Pdf时,DPI分辨率会引起问题

.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

我在将.tif转换为.pdf时遇到问题。基本上,对于每个文档,无论是水平还是垂直,DPI都是96,转换只捕获文档的左上角-它非常紧张。然而,在文档具有用于水平的DPI 204和用于垂直的DPI 196的情况下,它被正确地显示。这是我需要在我的代码(如下)中解决的问题,还是我需要更新文档每一页的DPI分辨率(我必须通过编程进行更新),以便在转换为pdf之前DPI为204和96

    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,这导致了问题。