Bir Belgeyi HTML, MHTML veya EPUB'ye Dönüştürme

HTML ve MHTML akış düzeni biçimlerindeki belgeler de çok popülerdir ve herhangi bir web platformunda kullanılabilir. Bu nedenle belgeleri HTML ve MHTML’e dönüştürmek Aspose.Words’ın önemli bir özelliğidir.

EPUB (“Elektronik Yayın” ın kısaltması), elektronik kitap dağıtımı için yaygın olarak kullanılan HTML tabanlı bir formattır. Bu biçim, çoğu okuma aygıtıyla uyumlu elektronik kitapları dışa aktarmak için Aspose.Words biçiminde tam olarak desteklenir.

Bir Belgeyi Dönüştürme

HTML, MHTML veya EPUB ‘e basit dönüştürme için Save yöntem aşırı yüklenmelerinden biri kullanılır. Belgeyi bir dosyaya veya akışa kaydedebilir ve çıktı belgesi kaydetme biçimini açıkça ayarlayabilir veya dosya adı uzantısından tanımlayabilirsiniz.

Aşağıdaki örnek, bir kaydetme biçimi belirterek DOCX’ın HTML’e nasıl dönüştürüleceğini gösterir:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Load the document from disk.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Test File (docx).docx");
// Save the document into HTML.
doc->Save(outputDataDir + u"Document_out.html", SaveFormat::Html);

Bir belgeyi MHTML veya EPUB’e dönüştürmek için sırasıyla SaveFormat.Mhtml veya SaveFormat.Epub kullanın.

Gidiş-dönüş Bilgileri İçeren Bir Belgeyi Dönüştürme

HTML biçimi pek çok Microsoft Word özelliği desteklemez ve bir belge modelini orijinaline mümkün olduğunca yakın bir şekilde geri yüklememiz gerekirse, HTML dosyasına bazı ek bilgileri kaydetmemiz gerekir. Bu tür bilgilere “gidiş-dönüş bilgileri” de denir. Bu amaçla Aspose.Words, ExportRoundtripInformation özelliğini kullanarak HTML, MHTML veya EPUB konumuna kaydederken gidiş-dönüş bilgilerini dışa aktarma olanağı sağlar. Gidiş-dönüş bilgilerinin kaydedilmesi, listelenen biçimlerdeki belgelerin Document nesnesine geri yüklenmesi sırasında sekmeler, yorumlar, üstbilgiler ve altbilgiler gibi belge özelliklerinin geri yüklenmesine olanak tanır.

Varsayılan değer HTML için true ve MHTML ve EPUB için false‘dır:

  • true olduğunda, gidiş-dönüş bilgileri karşılık gelen HTML öğelerin - aw - * CSS özellikleri olarak dışa aktarılır
  • false olduğunda, üretilen dosyalara aktarılacak gidiş-dönüş bilgisi yoktur

Aşağıdaki kod örneği, bir belgeyi DOCX’dan HTML’e dönüştürürken gidiş-dönüş bilgilerinin nasıl dışa aktarılacağını gösterir:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Load the document from disk.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Test File (doc).doc");
System::SharedPtr<HtmlSaveOptions> options = System::MakeObject<HtmlSaveOptions>();
// HtmlSaveOptions.ExportRoundtripInformation property specifies
// Whether to write the roundtrip information when saving to HTML, MHTML or EPUB.
// Default value is true for HTML and false for MHTML and EPUB.
options->set_ExportRoundtripInformation(true);
doc->Save(outputDataDir + u"ConvertDocumentToHtmlWithRoundtrip.html", options);

HTML’a Dönüştürürken Kaydetme Seçeneklerini Belirtin

Aspose.Words varsayılan veya özel kaydetme seçeneklerini kullanarak bir Word belgesini HTML’e dönüştürmeye izin verir. Özel kaydetme seçeneklerine birkaç örnek aşağıda açıklanmıştır.

Kaynakları Kaydetmek için Bir Klasör Belirtin

Aspose.Words kullanarak, bir belge HTML ‘e dönüştürüldüğünde resimler, yazı tipleri ve harici CSS gibi tüm kaynakların kaydedildiği fiziksel bir klasör belirleyebiliriz. Varsayılan olarak, bu boş bir dizedir.

ResourceFolder özelliğini belirtmek, tüm kaynakların yazılması gereken klasörü ayarlamanın en basit yoludur. Yazı tiplerini belirtilen klasöre kaydeden FontsFolder ve görüntüleri belirtilen bir klasöre kaydeden ImagesFolder gibi tek tek özellikleri kullanabiliriz. Göreli bir yol belirtildiğinde, FontsFolder ve ImagesFolder kod derlemesinin bulunduğu klasöre, ResourceFolder ve CssStyleSheetFileName HTML belgesinin bulunduğu çıktı klasörüne başvurur.

Bu örnekte, ResourceFolder göreli yolu belirtir. Bu yol, HTML belgesinin kaydedildiği çıktı klasörünü ifade eder. ResourceFolderAlias özelliğinin değeri, tüm kaynaklar için URLs oluşturmak için kullanılır.

Aşağıdaki kod örneği, bu özelliklerle nasıl çalışılacağını gösterir:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// The path to the documents directory.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>();
saveOptions->set_CssStyleSheetType(CssStyleSheetType::External);
saveOptions->set_ExportFontResources(true);
saveOptions->set_ResourceFolder(outputDataDir + u"Resources");
doc->Save(outputDataDir + u"ExportResourcesUsingHtmlSaveOptions.html", saveOptions);

ResourceFolderAlias özelliğini kullanarak, bir HTML belgesine yazılan tüm kaynakların URIs’ünü oluşturmak için kullanılan klasörün adını da belirtebiliriz. Bu, tüm kaynak dosyaları için URIs ‘ün nasıl oluşturulacağını belirtmenin en basit yoludur. Aynı bilgiler, resimler ve yazı tipleri için sırasıyla ImagesFolderAlias ve FontsFolderAlias özellikleri aracılığıyla ayrı ayrı belirtilebilir.

Ancak, CSS için tek bir özellik yoktur. Davranışı FontsFolder, FontsFolderAlias, ImagesFolder, ImagesFolderAlias ve CssStyleSheetFileName özellikleri değiştirilmez. CssStyleSheetFileName özelliğinin hem klasör adını hem de dosya adını belirtmek için kullanıldığını unutmayın.

  • ResourceFolder, FontsFolder, ImagesFolder ve CssStyleSheetFileName ile belirtilen klasörlerden daha düşük önceliğe sahiptir. ResourceFolder ‘de belirtilen klasör yoksa, otomatik olarak oluşturulur.
  • ResourceFolderAlias, FontsFolderAlias ve ImagesFolderAlias ‘den daha düşük bir önceliğe sahiptir. ResourceFolderAlias boşsa, ResourceFolder özelliğinin değeri URIs kaynağı oluşturmak için kullanılacaktır. ResourceFolderAlias “.” (nokta) olarak ayarlanırsa, URIs kaynağı bir yol belirtmeden yalnızca dosya adlarını içerecektir.

Base64 Kodlama Yazı Tipi Kaynaklarını Dışa Aktarma

Aspose.Words, Base64 kodlamalarında yazı tipi kaynaklarının HTML içine gömülüp gömülmeyeceğini belirleme yeteneği sağlar. Bunu gerçekleştirmek için ExportFontsAsBase64 özelliğini kullanın - bu, ExportFontResources özelliğinin bir uzantısıdır. Varsayılan olarak, değeri false ‘tür ve yazı tipleri ayrı dosyalara yazılır. Ancak bu seçenek true olarak ayarlanırsa, yazı tipleri Base64 kodlamasında belgenin CSS kodlamasına gömülür. ExportFontsAsBase64 özelliği yalnızca HTML biçimini etkiler ve EPUB ve MHTML biçimini etkilemez.

Aşağıdaki kod örneği, Base64 kodlu yazı tiplerinin HTML olarak nasıl dışa aktarılacağını gösterir.:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.doc");
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>();
saveOptions->set_ExportFontResources(true);
saveOptions->set_ExportFontsAsBase64(true);
System::String outputPath = outputDataDir + u"ExportFontsAsBase64.html";
doc->Save(outputPath, saveOptions);

EPUB’a Dönüştürürken Kaydetme Seçeneklerini Belirtin

Aspose.Words varsayılan veya özel kaydetme seçeneklerini kullanarak bir Word belgesini EPUB biçimine dönüştürmeye izin verir. HtmlSaveOptions örneğini Save yöntemine geçirerek bir dizi seçenek belirtebilirsiniz.

Aşağıdaki kod örneği, bazı özel kaydetme seçeneklerini belirterek bir Word belgesinin EPUB değerine nasıl dönüştürüleceğini gösterir:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Load the document from disk.
System::SharedPtr<Document> doc = System::MakeObject<Document>(inputDataDir + u"Document.EpubConversion.doc");
// Create a new instance of HtmlSaveOptions. This object allows us to set options that control
// How the output document is saved.
System::SharedPtr<HtmlSaveOptions> saveOptions = System::MakeObject<HtmlSaveOptions>();
// Specify the desired encoding.
saveOptions->set_Encoding(System::Text::Encoding::get_UTF8());
// Specify at what elements to split the internal HTML at. This creates a new HTML within the EPUB
// which allows you to limit the size of each HTML part. This is useful for readers which cannot read
// HTML files greater than a certain size e.g 300kb.
saveOptions->set_DocumentSplitCriteria(DocumentSplitCriteria::HeadingParagraph);
// Specify that we want to export document properties.
saveOptions->set_ExportDocumentProperties(true);
// Specify that we want to save in EPUB format.
saveOptions->set_SaveFormat(SaveFormat::Epub);
// Export the document as an EPUB file.
doc->Save(outputDataDir + u"ConvertDocumentToEPUB.ConvertDocumentToEPUB.epub", saveOptions);