并置具有不同一致性级别的多个PDF / A

问题描述 投票:0回答:1

是否有可能将多个pdf / a(可能具有不同的一致性级别:一些pdf / a-1b,一些pdf / a-3b ecc)合并为一个pdfa?

我以为使用最新级别(3-a或3b)是可以的,但是在用VeraPDF进行验证时出现错误:enter image description here

这是我的代码(其中:

public static byte[] CreateConformantCopy(List<byte[]> sourcePdfs)
    {
        var version = PdfVersion.PDF_1_7;
        var type = PdfAType.PDF_A_3B;

        WriterProperties wp = new WriterProperties();
        wp.UseSmartMode();
        wp.SetPdfVersion(version.ToPdfVersion());

        PdfOutputIntent oi = new PdfOutputIntent("Custom", "", "http://www.color.org", "sRGB IEC61966-2.1", Assembly.GetExecutingAssembly().GetManifestResourceStream("xxx.Resources.sRGB_CS_profile.icm"));

        using (var mergedPdf = new MemoryStream())
        {
            var writer = new PdfWriter(mergedPdf, wp);

            using (PdfADocument newDoc = new PdfADocument(writer, type.ToPdfAConformanceLevel(), oi, new DocumentProperties() { }))
            {
                Document document = new Document(newDoc, PageSize.A4.Rotate());

                newDoc.SetTagged();

                newDoc.GetCatalog().SetLang(new PdfString(Thread.CurrentThread.CurrentUICulture.Name));

                newDoc.GetCatalog().SetViewerPreferences(
                        new PdfViewerPreferences()
                            .SetDisplayDocTitle(true)
                            .SetCenterWindow(true)
                );

                PdfMerger merger = new PdfMerger(newDoc);

                for (int k = 0; k < sourcePdfs.Count; k++)
                {
                    using (var inDoc = PdfHelper.GetDocument(sourcePdfs[k]))
                    {
                        var numberOfPages = inDoc.GetNumberOfPages();

                        merger.Merge(inDoc, 1, numberOfPages);
                    }
                }

                newDoc.Close();
            }

            return mergedPdf.ToArray();
        }
    }
itext pdfa
1个回答
0
投票

PDF / A-1和PDF / A-2在要求上有几个不同。因此,将它们合并在一起是不可能的。查看您的验证错误,我认为情况确实如此。例如,第一个关于XMP元数据。 PDF / A-2在这里更加严格,您会收到此错误,因为您的第一个文件(可能是有效的PDF / A-1)实际上并不满足PDF / A-2规则。

但是,可以将PDF / A-1文件附加]到PDF / A-2。这甚至不需要使用PDF / A-3,它允许任意附件。 PDF / A-2标准确实允许附加有效的PDF / A-1(以及PDF / A-2文档)。

© www.soinside.com 2019 - 2024. All rights reserved.