From 6eeafbf474d7bf6e859473db9c0a19bbcc816dfa Mon Sep 17 00:00:00 2001 From: WMJ Date: Thu, 1 Sep 2022 18:07:36 +0800 Subject: [PATCH] =?UTF-8?q?=EF=BC=8D=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E6=8C=87=E5=AE=9A=E9=A1=B5=E9=9D=A2=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=9D=E5=AD=98=E5=88=B0PDF=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App/Processor/DocInfoImporter.cs | 33 ++++++-------------------------- App/Processor/Worker.cs | 2 +- 2 files changed, 7 insertions(+), 28 deletions(-) diff --git a/App/Processor/DocInfoImporter.cs b/App/Processor/DocInfoImporter.cs index f497b52..6cacb17 100644 --- a/App/Processor/DocInfoImporter.cs +++ b/App/Processor/DocInfoImporter.cs @@ -48,10 +48,10 @@ namespace PDFPatcher.Processor _options = options; } - internal DocInfoImporter(ImporterOptions importerOptions, PdfReader pdf, PatcherOptions patcherOptions, BookmarkRootElement bookmarkRoot) { + internal DocInfoImporter(ImporterOptions importerOptions, PdfReader pdf, PatcherOptions patcherOptions, PdfInfoXmlDocument infoDoc) { var v = patcherOptions.ViewerPreferences; var o = new ExporterOptions() { - ExportBookmarks = bookmarkRoot == null + ExportBookmarks = infoDoc.BookmarkRoot == null && (v.RemoveZoomRate || v.CollapseBookmark != BookmarkStatus.AsIs || v.ForceInternalLink @@ -70,31 +70,10 @@ namespace PDFPatcher.Processor o.UnitConverter.Unit = Constants.Units.Point; var exp = new DocInfoExporter(pdf, o); Tracker.SetProgressGoal(exp.EstimateWorkload()); - using (var ms = new MemoryStream()) { - using (var w = XmlWriter.Create(ms, new XmlWriterSettings { CheckCharacters = false })) { - w.WriteStartElement(Constants.PdfInfo); - w.WriteAttributeString(Constants.Info.ProductVersion, Constants.InfoDocVersion); - exp.ExportDocument(w); - if (bookmarkRoot != null) { - var bookmark = bookmarkRoot.CreateNavigator(); - bookmark.WriteSubtree(w); - //if (bookmark.MoveToFirstChild()) { - // bookmark.WriteSubtree(w); - //} - //while (bookmark.MoveToNext()) { - // bookmark.WriteSubtree(w); - //} - } - w.WriteEndElement(); - } - ms.Flush(); - ms.Position = 0; - var x = new PdfInfoXmlDocument(); - x.Load(ms); - _options = importerOptions; - _unitFactor = 1; - _infoDoc = x; - } + + _options = importerOptions; + _unitFactor = 1; + _infoDoc = infoDoc; } internal static float GetUnitFactor(XmlElement root) { diff --git a/App/Processor/Worker.cs b/App/Processor/Worker.cs index 738e7a0..c473abb 100644 --- a/App/Processor/Worker.cs +++ b/App/Processor/Worker.cs @@ -268,7 +268,7 @@ namespace PDFPatcher.Processor var xInfoDoc = infoDoc as PdfInfoXmlDocument; var docPath = infoDoc as string; if (xInfoDoc != null) { - import = new DocInfoImporter(options, pdf, pdfSettings, xInfoDoc.BookmarkRoot); + import = new DocInfoImporter(options, pdf, pdfSettings, xInfoDoc); } else if (String.IsNullOrEmpty(docPath)) { Tracker.TraceMessage("没有指定信息文件,将按程序界面的设置执行补丁。");