PDF是當今最流行的文檔格式之一,各種應用程式將其用作最終輸出。由於支持多種數據類型和可移植性,因此它是創建和共用內容的首選格式。作為對開發文檔管理應用程式感興趣的.NET應用程式開發人員,可能希望嵌入處理功能,以讀取PDF文檔並將其轉換為其他文件格式,例如HTML。 Aspose.PDF for ...
PDF是當今最流行的文檔格式之一,各種應用程式將其用作最終輸出。由於支持多種數據類型和可移植性,因此它是創建和共用內容的首選格式。作為對開發文檔管理應用程式感興趣的.NET應用程式開發人員,可能希望嵌入處理功能,以讀取PDF文檔並將其轉換為其他文件格式,例如HTML。
Aspose.PDF for .NET是一種高級PDF處理和解析API,用於在跨平臺應用程式中執行文檔管理和操作任務。API可以輕鬆用於生成,修改,轉換,渲染,保護和列印PDF文檔,而無需使用Adobe Acrobat。
PDF轉HTML-添加首碼以導入指令
Aspose.PDF for .NET支持將PDF文件轉換為HTML格式的功能。在轉換過程中,格式信息將保存在style.css文件中。在輸出HTML文件中引用了style.css文件。我們被要求@import 'style1p1.css';在style.css文件中為此類導入指令添加首碼。例如:
@import 'http://localhost:24661/document-viewer/GetResourceForHtmlHandler? documentPath=Deutschland201207Arbeit.pdf&resourcePath=style1p1.css&fileNameOnly=false';
下麵的代碼顯示瞭如何執行此任務。
//文檔目錄的路徑。 string dataDir = RunExamples.GetDataDir_AsposePdf_DocumentConversion_PDFToHTMLFormat(); string linceseFile = ""; //例如@“ F:\ _ Sources \ Aspose.Total.lic” (new Aspose.Pdf.License()).SetLicense(linceseFile); Document pdfDocument = new Document(dataDir + "input.pdf"); string outHtmlFile = dataDir + "PrefixToImportDirectives_out.html"; _folderForReferencedResources_36435 = dataDir; // 使用測試的功能創建HtmlSaveOption HtmlSaveOptions saveOptions = new HtmlSaveOptions(); saveOptions.CustomStrategyOfCssUrlCreation = new HtmlSaveOptions.CssUrlMakingStrategy(Strategy_10_CSS_ReturnResultPathInPredefinedTestFolder); saveOptions.CustomCssSavingStrategy = new HtmlSaveOptions.CssSavingStrategy(Strategy_10_CSS_WriteCssToResourceFolder); //---------------------------------------------------------------------------- //運行轉換器 //---------------------------------------------------------------------------- pdfDocument.Save(outHtmlFile, saveOptions);
private static void Strategy_10_CSS_WriteCssToResourceFolder(HtmlSaveOptions.CssSavingInfo resourceInfo) { // ------------------------------------------------------- // 這隻是保存的可能實現方式之一 // 如果您願意,可以編寫和使用自己的實現 // ------------------------------------------------------- // 從請求的文件中獲取CSS文件名。 // 需要一些技巧,因為我們獲得了此方法的參數 //不是純文件名,而是完整的URL //通過使用我們在Strategy_9_CSS_ReturnResultPathInPredefinedTestFolder()中返回的模板創建的 // 因此,瞭解該模板後,我們必須從中提取CSS文件名本身 string guid = System.Guid.NewGuid().ToString(); string fullPathWithGuid = Strategy_10_CSS_ReturnResultPathInPredefinedTestFolder(new HtmlSaveOptions.CssUrlRequestInfo()); fullPathWithGuid = string.Format(fullPathWithGuid, guid); int prefixLength = fullPathWithGuid.IndexOf(guid); int suffixLength = fullPathWithGuid.Length - (fullPathWithGuid.IndexOf(guid) + guid.Length); string fullPath = resourceInfo.SupposedURL; fullPath = fullPath.Substring(prefixLength); string cssFileNameCore = fullPath.Substring(0, fullPath.Length - suffixLength); // 獲取要保存的最終文件名 string cssFileName = "style" + cssFileNameCore + ".css"; string path = _folderForReferencedResources_36435 + cssFileName; // 保存自己 System.IO.BinaryReader reader = new BinaryReader(resourceInfo.ContentStream); System.IO.File.WriteAllBytes(path, reader.ReadBytes((int)resourceInfo.ContentStream.Length)); } private static string Strategy_10_CSS_ReturnResultPathInPredefinedTestFolder(HtmlSaveOptions.CssUrlRequestInfo requestInfo) { string template = "http:// Localhost:24661/document-viewer/GetResourceForHtmlHandler?documentPath=Deutschland201207Arbeit.pdf&resourcePath=style{0}.css&fileNameOnly=false"; return template; }
執行完上述代碼後,打開style.css文件並確保它以CSS-import指令開頭,並包含以下內容(如果在電腦上運行時可以在代碼段中更改它們的確切路徑將有所不同) :
@import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_1.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_2.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_3.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_4.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_5.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_6.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_7.css'; @import 'file://F:/ExternalTestsData/36435_1_files/style_page_1_part_8.css';
如果您有任何疑問或需求,請隨時加入Aspose技術交流群(642018183 )