itext7 pdfMerger не сохраняет теги - PullRequest
0 голосов
/ 04 июля 2019

Я использую iText7 (версия dotnet) для объединения нескольких документов PDF / UA в один.

Исходные документы полностью помечены и иным образом доступны (для проверки используйте инструмент PAC3).Но в объединенном PDF есть несколько проблем с доступностью, наиболее заметные теги H1 и H2 удаляются в документах слияния.

Автор @ bruno-lowagie указал в комментариях здесь , что iText7 долженподдерживаю это, и я просмотрел все примеры / учебники, которые смог найти, но не могу найти способ объединить и сохранить все теги.

Это мой пример кода:

public static void CombineMultiplePDFs(string[] fileNames, string outFile)
        {
            var writerProperties = new WriterProperties()
                .AddUAXmpMetadata()
                .AddXmpMetadata();

            PdfDocument pdf = new PdfDocument(new PdfWriter(outFile, writerProperties));
            pdf.SetTagged();
            pdf.GetCatalog().SetLang(new PdfString("en-US"));

            var viewerPreferences = new PdfViewerPreferences().SetDisplayDocTitle(true);
            pdf.GetCatalog()
                .SetViewerPreferences(viewerPreferences);

            PdfDocumentInfo info = pdf.GetDocumentInfo();
            info.SetTitle("iText7 PDF/UA example");
            info.SetCreator("A Creator").SetAuthor("An Author");


            var merger = new PdfMerger(pdf, false, false);
            merger.SetCloseSourceDocuments(true);
            var srcPdfs = new List<PdfDocument>();
            foreach (var fileName in fileNames)
            {
                PdfDocument srcPdf = new PdfDocument(new PdfReader(fileName));
                srcPdfs.Add(srcPdf);
                merger.Merge(srcPdf, 1, srcPdf.GetNumberOfPages());
            }

            merger.Close();
            pdf.Close();
        }

Пожалуйста, не пытайтесь не закрывать исходные документы до конца и т. Д.

Как объединить несколько документов PDF / UA в один и сохранить все теги / специальные возможности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...