PDF'ye Dönüştürürken İşleme Seçeneklerini Belirtin

PDF formatı, kullanıcılar arasında çok popüler olan ve çeşitli uygulamalar tarafından yaygın olarak desteklenen sabit sayfalı bir formattır, çünkü PDF belgesi her cihazda aynı görünür. Bu nedenle PDF’ye dönüştürmek Aspose.Words’in önemli bir özelliğidir.

PDF karmaşık bir formattır. Bir belgeyi PDF’ye dönüştürme sürecinde, mizanpaj hesaplaması da dahil olmak üzere birkaç hesaplama aşaması gerekir. Bu aşamalar karmaşık hesaplamalar içerdiğinden zaman alıcıdır. Ayrıca PDF formatı kendi başına oldukça karmaşıktır. Belirli bir dosya yapısına, grafik modeline ve yazı tipi yerleştirmeye sahiptir. Ayrıca belge yapısı etiketleri, şifreleme, dijital imzalar ve düzenlenebilir formlar gibi bazı karmaşık çıktı işlevlerine sahiptir.

Aspose.Words düzen motoru, Microsoft Word’nin sayfa düzeni motorunun çalışma şeklini taklit eder. Bu nedenle Aspose.Words, PDF çıktı belgelerinin Microsoft Word’de gördüklerinize mümkün olduğunca yakın görünmesini sağlar. Bazen bir belgeyi PDF formatında kaydetmenin sonucunu etkileyebilecek ek seçeneklerin belirtilmesi gerekebilir. Bu seçenekler, PDF çıktısının nasıl görüntüleneceğini belirleyen özellikleri içeren PdfSaveOptions sınıfı kullanılarak belirtilebilir.

PdfSaveOptions kullanımına ilişkin bazı örnekler aşağıda verilmiştir.

Doldurulabilir Formlarla PDF Belgesi Oluşturma

Doldurulabilir formları bir Microsoft Word belgesinden, düz metin yerine doldurulabilir formlar içeren çıktı PDF’sine aktarmak da mümkündür. Bir belgeyi doldurulabilir formlarla PDF olarak kaydetmek için PreserveFormFields özelliğini kullanın.

Microsoft Word’in aksine, PDF formatının düzenlenebilir formlar için metin kutusu, birleşik giriş kutusu ve onay kutusu gibi sınırlı sayıda seçeneğe sahip olduğunu unutmayın. Microsoft Word’te takvim tarihi seçici gibi daha fazla form türü bulunur. Genellikle PDF’de Microsoft Word davranışını tam olarak taklit etmek mümkün değildir. Bu nedenle bazı karmaşık durumlarda PDF çıktısı, Microsoft Word’te gördüğünüzden farklı olabilir.

Aşağıdaki kod örneği, bir belgenin belirtilen Jpeg sıkıştırması ve kalitesiyle doldurulabilir formlarla PDF olarak nasıl kaydedileceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
Document doc = new Document(MyDir + "Rendering.docx");
PdfSaveOptions saveOptions = new PdfSaveOptions
{
ImageCompression = PdfImageCompression.Jpeg, PreserveFormFields = true
};
doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.PdfImageCompression.pdf", saveOptions);
PdfSaveOptions saveOptions17 = new PdfSaveOptions
{
Compliance = PdfCompliance.Pdf17,
ImageCompression = PdfImageCompression.Jpeg,
JpegQuality = 100, // Use JPEG compression at 50% quality to reduce file size.
ImageColorSpaceExportMode = PdfImageColorSpaceExportMode.SimpleCmyk
};
doc.Save(ArtifactsDir + "WorkingWithPdfSaveOptions.PdfImageCompression_17.pdf", saveOptions17);

Belge Yapısını ve Özel Özellikleri Dışa Aktarma

[https://reference.aspose.com/words/tr/net/aspose.words.tained/pdfsaveoptions/properties/exportdocumentstructure) özelliği, belge yapısını PDF çıktısına aktarmanıza olanak tanır.

PDF mantıksal yapı olanakları, belge içerik yapısına ilişkin bilgilerin bir PDF dosyasına dahil edilmesine yönelik bir mekanizma sağlar. Aspose.Words, bir Microsoft Word belgesindeki paragraflar, listeler, tablolar, dipnotlar/son notlar vb. gibi yapıya ilişkin bilgileri korur.

Aşağıdaki örnek, belge yapısını koruyarak bir belgenin PDF formatında nasıl kaydedileceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Open a document
Document doc = new Document(dataDir + "Paragraphs.docx");
// Create a PdfSaveOptions object and configure it to preserve the logical structure that's in the input document
// The file size will be increased and the structure will be visible in the "Content" navigation pane
// of Adobe Acrobat Pro, while editing the .pdf
PdfSaveOptions options = new PdfSaveOptions();
options.ExportDocumentStructure = true;
doc.Save(dataDir + "PdfSaveOptions.ExportDocumentStructure.pdf", options);

Aspose.Words ayrıca aşağıdaki örnekte gösterildiği gibi belgenin özel özelliklerini PDF’ye aktarmanıza da olanak tanır:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Open a document
Document doc = new Document();
// Add a custom document property that doesn't use the name of some built in properties
doc.CustomDocumentProperties.Add("Company", "My value");
// Configure the PdfSaveOptions like this will display the properties
// in the "Document Properties" menu of Adobe Acrobat Pro
PdfSaveOptions options = new PdfSaveOptions();
options.CustomPropertiesExport = PdfCustomPropertiesExport.Standard;
doc.Save(dataDir + "PdfSaveOptions.CustomPropertiesExport.pdf", options);

Çıktı PDF’sindeki Yer İşaretlerinden ve Başlıklardan Anahatları Dışa Aktarma

Yer işaretlerini çıktı PDF’sinde ana hatlar olarak dışa aktarmak istiyorsanız DefaultBookmarksOutlineLevel özelliğini kullanabilirsiniz. Bu özellik, belge anahattında Microsoft Word yer imlerinin görüntülendiği varsayılan düzeyi belirtir. Belge, belgenin üstbilgisinde/altbilgisinde yer imleri içeriyorsa bunların çıktı PDF’sinde nasıl dışa aktarılacağını belirtmek için HeaderFooterBookmarksExportMode özelliğini First veya All olarak ayarlayabilirsiniz. HeaderFooterBookmarksExportMode‘nin değeri None olduğunda üstbilgi/altbilgilerdeki yer imleri dışa aktarılmaz.

Aşağıdaki kod örneği, bir bölümün ilk üstbilgisinden/altbilgisinden yer işaretlerinin 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-.NET
// The path to the documents directory.
Document doc = new Document(dataDir + "TestFile.docx");
PdfSaveOptions options = new PdfSaveOptions();
options.OutlineOptions.DefaultBookmarksOutlineLevel = 1;
options.HeaderFooterBookmarksExportMode = HeaderFooterBookmarksExportMode.First;
dataDir = dataDir + "ExportHeaderFooterBookmarks_out.pdf";
doc.Save(dataDir, options);

Bu örneğin çıktı PDF’si aşağıda gösterilmiştir:

specify-rendering-options-when-converting-to-pdf_1

HeaderFooterBookmarksExportMode, First olarak ayarlandığında ve belgede çift ve tek üstbilgiler/altbilgiler veya farklı bir ilk sayfa üstbilgisi/altbilgisi varsa, bir bölümdeki ilk benzersiz üstbilgiler/altbilgiler için yer işaretleri dışa aktarılır.

Ayrıca HeadingsOutlineLevels özelliğini kullanarak çıktı PDF’sindeki başlıkları da dışa aktarabilirsiniz. Bu özellik, belge taslağına kaç düzeyde başlık ekleneceğini belirtir.

Aşağıdaki kod örneği, başlıkların üç düzeyde 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-.NET
// Open a document
Document doc = new Document(dataDir + "Rendering.doc");
PdfSaveOptions options = new PdfSaveOptions();
options.OutlineOptions.HeadingsOutlineLevels = 3;
options.OutlineOptions.ExpandedOutlineLevels = 1;
doc.Save(dataDir + "Rendering.SaveToPdfWithOutline.pdf", options);

Bu örneğin çıktı PDF’si aşağıda gösterilmektedir:

specify-rendering-options-when-converting-to-pdf_2

Belge Boyutunu Küçültmek için Görüntüleri Alt Örnekleme

Aspose.Words, DownsampleOptions özelliğini kullanarak çıktı PDF boyutunu küçültmek amacıyla görüntüleri alt örnekleme yeteneği sağlar. Aşağı örnekleme, DownsampleImages özelliğinde varsayılan olarak etkindir.

Resolution özelliğinde belirli bir çözünürlük veya ResolutionThreshold özelliğinde bir çözünürlük eşiği ayarlamanın da mümkün olduğunu unutmayın. İkinci durumda ise görüntü çözünürlüğü eşik değerinden küçükse altörnekleme uygulanmayacaktır.

Aşağıdaki kod örneği, çıktı PDF belgesindeki görüntülerin çözünürlüğünün nasıl değiştirileceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Open a document that contains images
Document doc = new Document(dataDir + "Rendering.doc");
// If we want to convert the document to .pdf, we can use a SaveOptions implementation to customize the saving process
PdfSaveOptions options = new PdfSaveOptions();
// We can set the output resolution to a different value
// The first two images in the input document will be affected by this
options.DownsampleOptions.Resolution = 36;
// We can set a minimum threshold for downsampling
// This value will prevent the second image in the input document from being downsampled
options.DownsampleOptions.ResolutionThreshold = 128;
doc.Save(dataDir + "PdfSaveOptions.DownsampleOptions.pdf", options);

Çözünürlük, sayfadaki gerçek görüntü boyutuna göre hesaplanır.

Yazı Tiplerini Adobe PDF Formatına Gömme

Aspose.Words ayrıca yazı tiplerinin ortaya çıkan PDF belgelerine nasıl gömüleceğini de kontrol etmenizi sağlar. Belgenin herhangi bir makinede doğru şekilde oluşturulabilmesini sağlamak için yazı tiplerinin herhangi bir Adobe PDF belgesine gömülmesi gerekir (yazı tipi oluşturma hakkında daha fazla ayrıntı için TrueType Yazı Tiplerini Kullanma bölümünde bakın). Aspose.Words, varsayılan olarak belgede kullanılan yazı tiplerinin bir alt kümesini oluşturulan PDF’ye gömer. Bu durumda yalnızca belgede kullanılan glyph’ler (karakterler) PDF’ye kaydedilir.

Tam Yazı Tipleri Ne Zaman Kullanılmalı ve Ne Zaman Alt Kümelenmeli

Aspose.Words’in tam yazı tiplerini gömmesi için bir seçenek belirtmenin bir yolu vardır. Her ayarın bazı avantaj ve dezavantajlarının yanı sıra daha fazla ayrıntı aşağıdaki tabloda açıklanmaktadır.

Yazı Tiplerini Göm Modu Avantajları Dezavantajları
Full Ortaya çıkan PDF’yi daha sonra metni ekleyerek veya değiştirerek düzenlemek istediğinizde kullanışlıdır. Tüm yazı tipleri dahildir, dolayısıyla tüm glyph’ler mevcuttur. Bazı yazı tipleri büyük olduğundan (birkaç megabayt), bunları alt kümeleme olmadan gömmek, büyük çıktı dosyalarıyla sonuçlanabilir.
Subset Çıktı dosyasının boyutunu daha küçük tutmak istiyorsanız alt kümeleme kullanışlıdır.

Kullanıcı, çıktı PDF belgesindeki alt kümelenmiş yazı tipini kullanarak metni tam olarak ekleyemez veya düzenleyemez. Bunun nedeni, yazı tipinin tüm glyph’lerinin mevcut olmamasıdır.

Birden fazla PDF, alt kümelenmiş yazı tipleriyle kaydedilirse ve bir araya getirilirse, birleştirilmiş PDF belgesinde birçok gereksiz alt küme içeren bir yazı tipi bulunabilir.

|

PDF’ye Tam Yazı Tiplerini Gömme

EmbedFullFonts özelliği, Aspose.Words’nin yazı tiplerini çıktı PDF belgesine nasıl gömeceğini belirlemenizi sağlar.

  • Tam yazı tiplerini çıktı PDF belgesine gömmek için EmbedFullFonts‘i true olarak ayarlayın
  • PDF’ye kaydederken yazı tiplerini alt kümelemek için EmbedFullFonts‘i false olarak ayarlayın

Aşağıdaki örnek, tam yazı tiplerinin çıktı PDF belgesine nasıl gömüleceğini gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Load the document to render.
Document doc = new Document(dataDir + "Rendering.doc");
// Aspose.Words embeds full fonts by default when EmbedFullFonts is set to true. The property below can be changed
// Each time a document is rendered.
PdfSaveOptions options = new PdfSaveOptions();
options.EmbedFullFonts = true;
string outPath = dataDir + "Rendering.EmbedFullFonts_out.pdf";
// The output PDF will be embedded with all fonts found in the document.
doc.Save(outPath, options);

Aşağıdaki örnek, Aspose.Words’in çıktı PDF’sindeki yazı tiplerini alt kümeye nasıl ayarlayacağınızı gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Load the document to render.
Document doc = new Document(dataDir + "Rendering.doc");
// To subset fonts in the output PDF document, simply create new PdfSaveOptions and set EmbedFullFonts to false.
PdfSaveOptions options = new PdfSaveOptions();
options.EmbedFullFonts = false;
dataDir = dataDir + "Rendering.SubsetFonts_out.pdf";
// The output PDF will contain subsets of the fonts in the document. Only the glyphs used
// In the document are included in the PDF fonts.
doc.Save(dataDir, options);

Gömülü Çekirdek Yazı Tiplerini ve Windows Standart Yazı Tiplerini Kontrol Etme

Çekirdek yazı tipleri ve Windows Standart yazı tipleri, genellikle hedef makinede bulunan veya belge okuyucu tarafından sağlanan “standart” yazı tipleridir, bu nedenle çıktı PDF’sine gömülmeleri gerekmez. Bu yazı tiplerini gömmeyerek, oluşturulan PDF belgelerinin boyutunu azaltabilir ve yine de taşınabilirliği koruyabilirsiniz.

Aspose.Words, yazı tiplerinin PDF’ye nasıl aktarılacağını seçmeye yönelik seçenekler sunar. Temel ve standart yazı tiplerini çıktı PDF’sine gömmeyi veya bunları gömmeyi atlayıp bunun yerine hedef makinede standart çekirdek PDF yazı tiplerini veya sistem yazı tiplerini kullanmayı seçebilirsiniz. Bu seçeneklerden herhangi birinin kullanılması normalde Aspose.Words tarafından oluşturulan PDF belgelerinin dosya boyutunun önemli ölçüde azalmasına neden olur.

  • Bu seçenekler birbirini dışladığı için bir kerede yalnızca birini seçmelisiniz.
  • PDF/A-1 uyumluluğuyla kaydederken kullanılan tüm yazı tipleri PDF belgesine gömülmelidir. Bu uyumlulukla kaydederken UseCoreFonts özelliğinin false, FontEmbeddingMode özelliğinin ise EmbedAll olarak ayarlanması gerekir.

Temel Fontları Gömme

Çekirdek yazı tiplerini gömme seçeneği UseCoreFonts özelliği kullanılarak etkinleştirilebilir veya devre dışı bırakılabilir. true olarak ayarlandığında, aşağıdaki en popüler “True Type” yazı tipleri (Temel 14 yazı tipleri) çıktı PDF belgesine gömülmez:

  • Arial
  • Times New Roman
  • Courier New
  • Symbol

Bu yazı tipleri, PDF açıldığında okuyucu tarafından sağlanan ilgili temel Tip 1 yazı tipleriyle değiştirilir.

Aşağıda verilen örnek, Aspose.Words’in çekirdek yazı tiplerini gömmeyi önleyecek ve okuyucunun bunları PDF Tip 1 yazı tipleriyle değiştirmesine izin verecek şekilde nasıl ayarlanacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// The path to the documents directory.
string dataDir = RunExamples.GetDataDir_RenderingAndPrinting();
Document doc = new Document(dataDir + "Rendering.doc");
// To disable embedding of core fonts and subsuite PDF type 1 fonts set UseCoreFonts to true.
PdfSaveOptions options = new PdfSaveOptions();
options.UseCoreFonts = true;
string outPath = dataDir + "Rendering.DisableEmbedWindowsFonts_out.pdf";
// The output PDF will not be embedded with core fonts such as Arial, Times New Roman etc.
doc.Save(outPath);

PDF görüntüleyiciler desteklenen herhangi bir platformda temel yazı tipleri sağladığından, bu seçenek daha fazla belge taşınabilirliği gerektiğinde de kullanışlıdır. Ancak çekirdek yazı tipleri sistem yazı tiplerinden farklı görünebilir.

Sistem Yazı Tiplerini Gömme

Bu seçenek FontEmbeddingMode özelliği kullanılarak etkinleştirilebilir veya devre dışı bırakılabilir. Bu özellik EmbedNonstandard olarak ayarlandığında “Arial” ve “Times New Roman” true tipi yazı tipleri PDF belgesine gömülmez. Bu durumda istemci görüntüleyici, istemcinin işletim sisteminde yüklü olan yazı tiplerine güvenir. FontEmbeddingMode özelliği EmbedNone olarak ayarlandığında Aspose.Words herhangi bir yazı tipi yerleştirmez.

Aşağıdaki örnek, Aspose.Words’in Arial ve Times New Roman yazı tiplerini bir PDF belgesine gömmeyi atlayacak şekilde nasıl ayarlanacağını gösterir:

// For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-.NET
// Load the document to render.
Document doc = new Document(dataDir + "Rendering.doc");
// To disable embedding standard windows font use the PdfSaveOptions and set the EmbedStandardWindowsFonts property to false.
PdfSaveOptions options = new PdfSaveOptions();
options.FontEmbeddingMode = PdfFontEmbeddingMode.EmbedNone;
// The output PDF will be saved without embedding standard windows fonts.
doc.Save(dataDir + "Rendering.DisableEmbedWindowsFonts.pdf");

Bu mod, çıktı PDF’sindeki yazı tiplerinin tam görünümünü koruyarak belgelerinizi aynı platformda görüntülemek istediğinizde çok kullanışlıdır.