Image' 是 'System.Drawing.Image' 和 'iText.Layout.Element.Image' 之间的模糊引用

Image' is an ambiguous reference between 'System.Drawing.Image' and 'iText.Layout.Element.Image'

使用该代码,我可以拆分多个 tiff 并将图像保存到文件中。

    public void SplitImage(string file)
    {
        Bitmap bitmap = (Bitmap)Image.FromFile(file);
        int count = bitmap.GetFrameCount(FrameDimension.Page);
        var new_files = file.Split("_");
        String new_file = new_files[new_files.Length - 1];
        for (int idx = 0; idx < count; idx++)
        {
            bitmap.SelectActiveFrame(FrameDimension.Page, idx);
            
            bitmap.Save($"C:\temp\{idx}-{new_file}", ImageFormat.Tiff);
        }
    }

这里是创建 Pdf 的代码

    public void CreatePDFFromImages(string path_multi_tiff)
    {
        Image img = new Image(ImageDataFactory.Create(path_multi_tiff));
        var p = new Paragraph("Image").Add(img);

        var writer = new PdfWriter("C:\temp\test.pdf");
        var pdf = new PdfDocument(writer);
        var document = new Document(pdf);
        document.Add(new Paragraph("Images"));
        document.Add(p);
        document.Close();
        Console.WriteLine("Done !");
    }

现在我想将图像保存到 pdf 页面并尝试使用 iText7。但这失败了

using System.Drawing.Imaging;
using Image = iText.Layout.Element.Image;

将关闭以将它们放在同一个 class 中。如何将拆分后的图像保存到 PDF 页面?我想避免先保存到文件并重新加载所有图像。

using Image = iText.Layout.Element.Image;

就是所谓的using alias directive。它为命名空间或类型 iText.Layout.Element.Image 创建别名 Image。如果这造成问题,您可以简单地创建一个不同的别名。例如

using A = iText.Layout.Element.Image;

将为命名空间或类型 iText.Layout.Element.Image 创建别名 A