Excel’i PDF’ye Dönüştürme (C++)

Excel Çalışma Kitabını PDF’e Dönüştürme

PDF dosyaları, belge alışverişinde yaygın olarak kullanılmaktadır; hem organizasyonlar, hükümet sektörleri hem de bireyler arasında. Standart bir belge formatıdır ve yazılım geliştiricilerden, Microsoft Excel dosyalarını PDF belgelerine dönüştürmenin yollarını bulmaları istenir.

Aspose.Cells, Excel dosyalarını PDF’ye dönüştürmeyi destekler ve dönüşümde yüksek görsel sadakati korur.

Doğrudan Dönüşüm

Aspose.Cells for C++, elektronik tablo dosyalarını PDF’ye dönüştürmeyi diğer yazılımlardan bağımsız olarak destekler. Basitçe, Workbook sınıfının Save metodunu kullanarak bir Excel dosyasını PDF’ye kaydedin. Save metodu, yerel Excel dosyalarını PDF formatına dönüştüren SaveFormat.Pdf enum üyesini sağlar.

Doğrudan Excel elektronik tablolarını PDF biçimine dönüştürmek için aşağıdaki adımları izleyin:

  1. Workbook sınıfının boş yapıcı metodunu çağırarak bir nesne oluşturun.
  2. Varolan bir şablon dosyasını açabilir/yükleyebilir veya çalışma kitabını sıfırdan oluşturuyorsanız bu adımı atlayabilirsiniz.
  3. Aspose.Cells’in API’lerini kullanarak elektronik tablo üzerinde herhangi bir çalışmayı (giriş verisi, biçimlendirme uygulama, formülleri ayarlama, resimler veya diğer çizim nesneleri ekleme ve benzeri) yapın. Elektronik tablo kodu tamamlandığında, Workbook sınıfının Save metodunu çağırarak elektronik tabloyu kaydedin.

Dosya formatı PDF olmalı, bu yüzden nihai PDF belgesini oluşturmak için SaveFormat enum’undan Pdf (önceden tanımlanmış değer) seçin.

#include <iostream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Path of input Excel file
    U16String inputFilePath = srcDir + u"Book1.xls";

    // Path of output PDF file
    U16String outputFilePath = outDir + u"output.pdf";

    // Create workbook
    Workbook workbook(inputFilePath);

    // Save the document in PDF format
    workbook.Save(outputFilePath, SaveFormat::Pdf);

    std::cout << "Document saved successfully in PDF format!" << std::endl;

    Aspose::Cells::Cleanup();
}

Gelişmiş Dönüşüm

Ayrıca, dönüştürme için farklı özellikler ayarlamak amacıyla PdfSaveOptions sınıfını kullanmayı tercih edebilirsiniz. PdfSaveOptions sınıfının farklı özelliklerini ayarlamak, çıktı PDF’si için yazdırma, yazı tipi, güvenlik ve sıkıştırma ayarları üzerinde kontrol sağlar.

En önemli özellik GetCompliance() olup, bu özellik PDF uyumluluk seviyesi ayarlamanıza olanak tanır. Şu anda PDF 1.4, PDF 1.5, PDF 1.6, PDF 1.7, PDF/A-1a, PDF/A-1b, PDF/A-2a, PDF/A-2b, PDF/A-2u, PDF/A-3a, PDF/A-2ab ve PDF/A-3u formatlarına kaydedebilirsiniz. Not: PDF/A formatı ile çıktı dosya boyutu normal PDF’den daha büyüktür.

Çalışma Kitabını PDF/A Uyumlu Dosyalara Kaydetme

Aşağıdaki kod parçası, PdfSaveOptions sınıfını kullanarak Excel dosyalarını PDF/A uyumlu PDF formatına kaydetmenin nasıl yapılacağını gösterir.

#include <iostream>
#include "Aspose.Cells.h"

using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Instantiate new workbook
    Workbook workbook;

    // Insert a value into the A1 cell in the first worksheet
    workbook.GetWorksheets().Get(0).GetCells().Get(0, 0).PutValue(U16String(u"Testing PDF/A"));

    // Define PdfSaveOptions
    PdfSaveOptions pdfSaveOptions;

    // Set the compliance type
    pdfSaveOptions.SetCompliance(PdfCompliance::PdfA1b);

    // Save the file
    workbook.Save(outDir + u"output.pdf", pdfSaveOptions);

    std::cout << "PDF file created successfully with PDF/A-1b compliance!" << std::endl;

    Aspose::Cells::Cleanup();
}

PDF Oluşturma Saatini Ayarlayın

PdfSaveOptions sınıfı ile PDF oluşturma zamanını alabilir veya ayarlayabilirsiniz. Aşağıdaki kod, PDF dosyasının oluşturulma zamanını ayarlamak için PdfSaveOptions.GetCreatedTime() özelliğinin kullanımını gösterir.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Path of input excel file
    U16String inputPath = srcDir + u"Book1.xlsx";

    // Load excel file containing charts
    Workbook workbook(inputPath);

    // Create an instance of PdfSaveOptions
    PdfSaveOptions options;
	options.SetCreatedTime(Date{ 2025,01,01 });

    // Save the workbook to PDF format while passing the object of PdfSaveOptions
    workbook.Save(srcDir + u"output.pdf", options);

    std::cout << "Workbook saved to PDF successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

İçerik Erişilebilirlik Kopyalama seçeneğini Ayarlayın

PdfSaveOptions sınıfı ile, dönüştürülmüş PDF’de içerik erişimini kontrol etmek için GetAccessibilityExtractContent() seçeneğini alıp ayarlayabilirsiniz.

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;

int main()
{
    Aspose::Cells::Startup();

    // Source directory path
    U16String srcDir(u"..\\Data\\01_SourceDirectory\\");

    // Output directory path
    U16String outDir(u"..\\Data\\02_OutputDirectory\\");

    // Path of input excel file
    U16String inputPath = srcDir + u"BookWithSomeData.xlsx";

    // Load excel file containing some data
    Workbook workbook(inputPath);

    // Create an instance of PdfSaveOptions
    PdfSaveOptions pdfSaveOpt;

    // Create an instance of PdfSecurityOptions
    PdfSecurityOptions securityOptions;

    // Set AccessibilityExtractContent to false
    securityOptions.SetAccessibilityExtractContent(false);

    // Set the security option in the PdfSaveOptions
    pdfSaveOpt.SetSecurityOptions(securityOptions);

    // Save the workbook to PDF format while passing the object of PdfSaveOptions
    workbook.Save(outDir + u"outFile.pdf", pdfSaveOpt);

    std::cout << "Workbook saved to PDF format successfully!" << std::endl;

    Aspose::Cells::Cleanup();
}

Özel özellikleri PDF’ye aktar

PdfSaveOptions sınıfı ile, kaynak çalışma kitabındaki özel özellikleri dışa aktarabilirsiniz. PdfCustomPropertiesExport enumeratörü, özelliklerin dışa aktarım şeklini belirtmek için sağlanmıştır. Bu özellikler, Adobe Acrobat Reader’da Dosya seçeneğine tıklayarak ve ardından özellikler seçeneğine erişerek görüntülenebilir. Test amacıyla “sourceWithCustProps.xlsx” adlı şablon dosyası buradan indirilebilir ve çıktı PDF dosyası “outSourceWithCustProps” burada analiz edilmek üzere mevcuttur.

todo:image_alt_text

#include <iostream>
#include "Aspose.Cells.h"
using namespace Aspose::Cells;
using namespace Aspose::Cells::Rendering;

int main()
{
    Aspose::Cells::Startup();

    // Load excel file containing custom properties
    U16String inputFilePath(u"sourceWithCustProps.xlsx");
    Workbook workbook(inputFilePath);

    // Create an instance of PdfSaveOptions
    PdfSaveOptions pdfSaveOptions;

    // Set CustomPropertiesExport property to PdfCustomPropertiesExport::Standard
    pdfSaveOptions.SetCustomPropertiesExport(PdfCustomPropertiesExport::Standard);

    // Save the workbook to PDF format while passing the object of PdfSaveOptions
    U16String outputFilePath(u"outSourceWithCustProps.pdf");
    workbook.Save(outputFilePath, pdfSaveOptions);

    Aspose::Cells::Cleanup();
}

Dönüşüm Özellikleri

Her yeni sürümde dönüştürme özelliklerini geliştirmeye çalışıyoruz. Aspose.Cells’in Excel’den PDF’ye dönüştürme işlemi hâlâ bazı sınırlamalara sahiptir. MapChart, PDF formatına dönüştürme sırasında desteklenmemektedir. Ayrıca, bazı çizim nesneleri tam olarak desteklenmemektedir.

Aşağıdaki tablo, Aspose.Cells kullanılarak PDF’ye dışa aktarılırken tam veya kısmen desteklenen tüm özellikleri listelemektedir. Bu tablo son değildir ve tüm elektronik tablo niteliklerini kapsamaz, ancak PDF’ye dönüştürme sırasında desteklenmeyen veya kısmen desteklenen özellikleri tanımlar.

Belge Öğesi Özellik Destekleniyor Notlar
Hizalama Evet
Arka plan ayarları Evet
Kenarlık Renk Evet
Kenarlık Çizgi stili Evet
Kenarlık Çizgi kalınlığı Evet
Hücre Verisi Evet
Yorumlar Evet
Koşullu Biçimlendirme Evet
Belge Özellikleri Evet
Çizim Nesneleri Kısmen Çizim nesneleri için gölge ve 3-D efektleri tam desteklenmemekte; WordArt ve SmartArt kısmen desteklenmektedir.
Yazı Tipi Boyut Evet
Yazı Tipi Renk Evet
Yazı Tipi Stil Evet
Yazı Tipi Altı çizili Evet
Yazı Tipi Efektleri Evet
Resimler Evet
Köprü Hükümeti Evet
Grafikler Kısmen MapChart desteklenmiyor.
Birleşik Hücreler Evet
Sayfa Sonu Evet
Sayfa Düzeni Üstbilgi/Altbilgi Evet
Sayfa Düzeni Kenar Boşlukları Evet
Sayfa Düzeni Sayfa Yönü Evet
Sayfa Düzeni Sayfa Boyutu Evet
Sayfa Düzeni Yazdırma Alanı Evet
Sayfa Düzeni Yazdırma Başlıkları Evet
Sayfa Düzeni Ölçekleme Evet
Satır Yüksekliği/Sütun Genişliği Evet
RTL (Sağdan Sola) Dili Evet

Gelişmiş Konular