1

我正在尝试TIFF从磁盘读取文件并使用转换为PDF格式iTextSharp

它工作正常,但除了TIFF一些图像进入它。Tiles are not supported在这一行出现类似错误的错误iTextSharp.text.Image.GetInstance(documentPath)

这是我使用的代码

string documentPath="somefile.TIFF";

try
{
  Image myImage = Image.GetInstance(documentPath); //Error here     
  documentPDF.Add(myImage);
  byte[] bytes= ms.GetBuffer();
}
catch (Exception ex)
{
  // Error says tiles are not supported
}

堆栈跟踪:

在 iTextSharp.text.pdf.codec.TiffImage.GetTiffImage(RandomAccessFileOrArray s, Int32 page, Boolean direct) at iTextSharp.text.pdf.codec.TiffImage.GetTiffImage(RandomAccessFileOrArray s, Int32 page) at iTextSharp.text.Image.GetInstance( Uri url) 在 iTextSharp.text.Image.GetInstance(String 文件名)

有人可以帮我解决这个问题吗?这在新版本中修复了吗?

在这里查看代码后,他们似乎检查了 TIFF 中存在的 Tiles。

是否有任何 pdf 创建者通过 TIFF with Tiles for C# 阅读?

4

1 回答 1

0

Docotic.Pdf 库也可以从平铺的 TIFF 和其他流行格式创建 PDF。

这是一个从图像(平铺 TIFF 或不平铺 TIFF)创建 PDF 的示例代码。图像被缩放以适合页面。

public static void createPdfFromImage(string imageFile, string output)
{
    using (PdfDocument doc = new PdfDocument())
    {
        PdfImage img = doc.AddImage(imageFile);

        PdfPage page = doc.Pages[0];
        double widthRatio = (double)page.Width / (double)img.Width;
        double heightRatio = (double)page.Height / (double)img.Height;
        double ratio = Math.Min(Math.Min(widthRatio, heightRatio), 1);

        page.Canvas.DrawImage(img, 0, 0,
            (float)(img.Width * ratio), (float)(img.Height * ratio), 0f);

        doc.Save(output);
    }
}

免责声明:我为图书馆的供应商工作。

于 2013-11-08T15:13:42.220 回答