翻譯|使用教程|編輯:李顯亮|2020-10-20 11:07:46.837|閱讀 652 次
概述:在大多數情況下,基本的轉換選項集效果很好。但是,今天,我們將討論將PDF轉換為PPTX的一些高級技巧——處理注釋或評論,將裝飾圖形與內容圖像分開等內容。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
在前一篇教程中,我們討論了如何在.NET應用程序中使用C#將PDF文件轉換為PowerPoint PPT / PPTX演示文稿。在大多數情況下,基本的轉換選項集效果很好。但是,在本文中,將討論將PDF轉換為PPTX的一些高級技巧:
目前,.NET版Aspose.PDF升級到v20.10版,新增支持ZUGFeRD附件,優化添加簽名功能嗎,修復XPS到PDF轉換異常等諸多Bug問題,感興趣的朋友可點擊下方按鈕下載最新版。
當告訴別人一些事情并使用演示文稿時,我還喜歡在幻燈片上做筆記,畫箭頭,用幾何形狀繪制重音等。
很簡單,可以在Adobe Reader DC或Microsoft Edge中打開PDF文件,然后使用鉛筆工具。默認情況下,Adobe Reader使用紅色鉛筆。
而Microsoft Edge使用藍色的。
如果將此類PDF文件轉換為PPTX演示文稿,則所有注釋都將傳輸到PPTX文件。
根據PDF標準,我們正在處理頁面的內容和名為注釋的其他元素。讓我們寫一小段C#代碼來研究此類文檔中存在哪些類型的注釋。
private static void ShowAnnotations() { var inputFileName = @"C:\tmp\Presentations\Sample Screen.pdf"; var document = new Aspose.Pdf.Document(inputFileName); foreach (var page in document.Pages) { foreach (var annotation in page.Annotations) { Console.WriteLine($"{page.Number} {annotation.FullName} {annotation.AnnotationType} {annotation.Color}"); } } }
執行后,我們將得到如下結果:
這意味著PDF頁面上有三種類型的注釋:
因此,為了刪除PDF中的其他圖形,我們應該刪除Ink和Square注釋。以下是執行此操作的步驟。
下面的C#代碼段顯示了刪除PDF到PPTX轉換中的注釋的一種可能方法:
private static void RemoveAnnotations(Page page, Aspose.Pdf.Annotations.AnnotationType annotationType) { var annotations = page.Annotations.Where(a => a.AnnotationType == annotationType).ToArray(); foreach (var annotation in annotations) { page.Annotations.Delete(annotation); } }
如上所述,演示者可以使用不同的工具和顏色進行注釋,并且我們可以(如果需要)調整最后一個樣本。例如,我們只能刪除紅色(顏色代碼#E52237)注釋或某些演示者的注釋。
讓我們嘗試另一種方法來改善PDF到PPTX轉換中的圖形內容。
在將PDF轉換為PPTX時,通常將PDF文件中的所有圖像分組到輸出中的單個背景圖像中。這并不總是很方便,而且.NET的Aspose.PDF具有一種特殊的模式,可以在將PDF轉換為PPTX時更改轉換器的行為。
要啟用此模式,可以將SeparateImages屬性設置為true。以下代碼片段顯示了如何在C#中將PDF轉換為PPTX時使用此選項:
private static void ConvertPDFtoPPTX(string inputFileName, string outputFileName) { var document = new Aspose.Pdf.Document(inputFileName); foreach (var page in document.Pages) { RemoveAnnotations(page, Pdf.Annotations.AnnotationType.Ink); RemoveAnnotations(page, Pdf.Annotations.AnnotationType.Square); } var options = new Aspose.Pdf.PptxSaveOptions { SeparateImages = true, //CustomProgressHandler = ShowProgressOnConsole }; document.Save(outputFileName, options); }
因此,來自先前示例的幻燈片將被分為3個圖像。
應該注意的是,并非總是能夠準確地將背景圖像與內容圖像分開。因此,轉換器有時可能會出錯,并在內容中添加額外的元素。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn