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) で iTextSharp.text.pdf.codec.TiffImage.GetTiffImage(RandomAccessFileOrArray s, Int32 page) で iTextSharp.text.Image.GetInstance( Uri url) の iTextSharp.text.Image.GetInstance(String filename)

誰かがこれを修正するのを手伝ってくれますか? これは新しいバージョンで修正されていますか?

ここでコードを見た後、TIFF に存在するタイルをチェックしているようです。

Tiles for C# を使用して TIFF を読み取る PDF 作成者はいますか?

4

1 に答える 1

0

Docotic.Pdf ライブラリは、タイル化された 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);
    }
}

免責事項: 私はライブラリのベンダーで働いています。

于 2013-11-08T15:13:42.220 に答える