我正在尝试从磁盘中读取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页面,布尔直接)at iTextSharp.text.pdf.codec.TiffImage.GetTiffImage(RandomAccessFileOrArray s,Int32页面)在iTextSharp.text.Image.GetInstance(Uri url)at at iTextSharp.text.Image.GetInstance(String filename)
有人可以帮我解决这个问题吗?这是在新版本中修复的吗?
查看代码 here 后,他们似乎会检查TIFF中存在的Tiles。
是否有任何pdf创作者使用Tiles for C#阅读TIFF?
答案 0 :(得分:1)
Docotic.Pdf library也可以从平铺的TIFF和其他流行格式创建PDF。
以下是从图像创建PDF的示例代码(平铺TIFF或不平铺)。缩放图像以适合页面。
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);
}
}
免责声明:我为图书馆的供应商工作。