IText7和C#中缺少GetPageN方法

丹ny

我已使用此C#代码,iTextSharp 5并且需要将其移植到IText7

public static PdfReader Fix(PdfReader pdfReader, int pagina)
{
    var dic = pdfReader.GetPageN(pagina);
    var resources = dic.GetAsDict(PdfName.Resources);

    var fonts = resources?.GetAsDict(PdfName.Font);
    if (fonts == null) return pdfReader;

    foreach (var key in fonts.Keys)
    {
        var font = fonts.GetAsDict(key);

        var firstChar = font.Get(PdfName.FirstChar);
        if (firstChar == null)
            font.Put(PdfName.FirstChar, new PdfNumber(32));

        var lastChar = font.Get(PdfName.LastChar);
        if (lastChar == null)
            font.Put(PdfName.LastChar, new PdfNumber(255));

        var widths = font.GetAsArray(PdfName.Widths);

        if (widths != null) continue;
        var array = Enumerable.Repeat(600, 256).ToArray();
        font.Put(PdfName.Widths, new PdfArray(array));
    }

    return pdfReader;
}

我的问题是GetPageN这一行中的方法

var dic = pdfReader.GetPageN(pagina);

已被删除。

有人遇到过同样的问题吗?

安德烈·莱莫斯(AndréLemos)

确实,现在GetPage()方法在PdfDocument类的内部

从文档中获取Dictionary条目的方式也做了一些小的更改,我可以自由地将代码调整为该条目。

public static PdfReader Fix(PdfReader pdfReader, int pagina)
{
    var dic = new PdfDocument(pdfReader).GetPage(pagina);
    var resources = dic.GetPdfObject().GetAsDictionary(PdfName.Resources);

    var fonts = resources?.GetAsDictionary(PdfName.Font);
    if (fonts == null) return pdfReader;

    foreach (var key in fonts.KeySet())
    {
        var font = fonts.GetAsDictionary(key);

        var firstChar = font.Get(PdfName.FirstChar);
        if (firstChar == null)
            font.Put(PdfName.FirstChar, new PdfNumber(32));

        var lastChar = font.Get(PdfName.LastChar);
        if (lastChar == null)
            font.Put(PdfName.LastChar, new PdfNumber(255));

        var widths = font.GetAsArray(PdfName.Widths);

        if (widths != null) continue;
        var array = Enumerable.Repeat(600, 256).ToArray();
        font.Put(PdfName.Widths, new PdfArray(array));
    }

    return pdfReader;
}

(我没有检查您的代码,只是确保至少您现在发布的内容可以编译)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用 IText7 和 C# 在现有 PDF 中的内部链接下划线?

来自分类Dev

如何使用iText7在C#中从MemoryStream创建Image对象?

来自分类Dev

使用iText7和Vb.Net签名Pdf时缺少MissingMethodException

来自分类Dev

在iText7中,是否有类似iText5的calculateHeights方法的方法?

来自分类Dev

在IText7中创建PdfFont

来自分类Dev

iText7 目录

来自分类Dev

去掉论文Itext7中的first和last lines属性

来自分类Dev

如何使用带有 C# 的 itext7 将 u3d 添加到现有的 pdf 中

来自分类Dev

当一行太大而无法放在第一页上时,如何在 C# 的 Itext7 中禁用行的拆分(不是表!)?

来自分类Dev

Itext7 - pdfHTML - Document SetMargins 方法不起作用

来自分类Dev

在iText7中的jar中提供字体

来自分类Dev

什么可以替代itext7中的短语?

来自分类Dev

如何在itext7中获取widthPoint

来自分类Dev

LayoutResult在Itext7中多一页

来自分类Dev

通过后期请求接受Pdf并传递给C#.net Core中的itext7 pdfreader

来自分类Dev

iText7以错误的顺序读出行

来自分类Dev

使用itext7的addind文本

来自分类Dev

iText7(.net)SignExternalSignatureContainer NullReferenceException

来自分类Dev

iText7 Java添加文本问题

来自分类Dev

iText7 - 如何设置 LoggerFactory?

来自分类Dev

iText7 无法设置日志

来自分类Dev

Itext7 pdf.version.not.valid

来自分类Dev

iText7 setRotation() 无法正常工作

来自分类Dev

iText7 图像透明度

来自分类Dev

如何在iText7中为单个页面设置页面标签?

来自分类Dev

为什么我无法在iText7中更改QR码的大小?

来自分类Dev

如何在itext7 html到pdf转换器的converterproperties中设置baseuri

来自分类Dev

如何使用itext7从标记的pdf中的结构元素中提取文本

来自分类Dev

我如何使用itext7从存储在Blob存储中的pdf中提取文本?

Related 相关文章

  1. 1

    如何使用 IText7 和 C# 在现有 PDF 中的内部链接下划线?

  2. 2

    如何使用iText7在C#中从MemoryStream创建Image对象?

  3. 3

    使用iText7和Vb.Net签名Pdf时缺少MissingMethodException

  4. 4

    在iText7中,是否有类似iText5的calculateHeights方法的方法?

  5. 5

    在IText7中创建PdfFont

  6. 6

    iText7 目录

  7. 7

    去掉论文Itext7中的first和last lines属性

  8. 8

    如何使用带有 C# 的 itext7 将 u3d 添加到现有的 pdf 中

  9. 9

    当一行太大而无法放在第一页上时,如何在 C# 的 Itext7 中禁用行的拆分(不是表!)?

  10. 10

    Itext7 - pdfHTML - Document SetMargins 方法不起作用

  11. 11

    在iText7中的jar中提供字体

  12. 12

    什么可以替代itext7中的短语?

  13. 13

    如何在itext7中获取widthPoint

  14. 14

    LayoutResult在Itext7中多一页

  15. 15

    通过后期请求接受Pdf并传递给C#.net Core中的itext7 pdfreader

  16. 16

    iText7以错误的顺序读出行

  17. 17

    使用itext7的addind文本

  18. 18

    iText7(.net)SignExternalSignatureContainer NullReferenceException

  19. 19

    iText7 Java添加文本问题

  20. 20

    iText7 - 如何设置 LoggerFactory?

  21. 21

    iText7 无法设置日志

  22. 22

    Itext7 pdf.version.not.valid

  23. 23

    iText7 setRotation() 无法正常工作

  24. 24

    iText7 图像透明度

  25. 25

    如何在iText7中为单个页面设置页面标签?

  26. 26

    为什么我无法在iText7中更改QR码的大小?

  27. 27

    如何在itext7 html到pdf转换器的converterproperties中设置baseuri

  28. 28

    如何使用itext7从标记的pdf中的结构元素中提取文本

  29. 29

    我如何使用itext7从存储在Blob存储中的pdf中提取文本?

热门标签

归档