Convertir divers formats d'images en PDF

Aspose.PDF pour C++ vous permet de convertir différents formats d’images en fichiers PDF. Notre bibliothèque démontre des extraits de code pour convertir les formats d’image les plus populaires, tels que - BMP, DICOM, EMF, JPG, PNG, SVG et TIFF.

Convertir BMP en PDF

Convertir des fichiers BMP en document PDF en utilisant la bibliothèque Aspose.PDF pour C++.

Les images BMP sont des fichiers ayant une extension. BMP représente des fichiers d’image bitmap utilisés pour stocker des images numériques bitmap. Ces images sont indépendantes de l’adaptateur graphique et sont également appelées format de fichier bitmap indépendant de l’appareil (DIB). Vous pouvez convertir BMP en fichiers PDF avec l’API Aspose.PDF pour C++. Par conséquent, vous pouvez suivre les étapes suivantes pour convertir des images BMP :

  1. Créez une classe String pour le nom du chemin et le nom du fichier.
  2. Une instance d’un nouvel objet Document est créée.
  3. Ajoutez une nouvelle Page à ce Document.
  4. Un nouveau BMP Aspose.Pdf est créé.
  5. L’objet BMP Aspose.PDF est initialisé en utilisant le fichier d’entrée.
  6. Aspose.PDF BMP est ajouté à la Page en tant que Paragraphe.
  7. Enfin, enregistrez le fichier PDF de sortie

Ainsi, l’extrait de code suivant suit ces étapes et montre comment convertir BMP en PDF en utilisant C++ :

void ConvertBMPtoPDF() 
{
    std::clog << "BMP to PDF convert: Start" << std::endl;

    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.bmp");

    // String for input file name
    String outfilename("ImageToPDF-BMP.pdf");

    // Open document
    auto document = MakeObject<Document>();

    // Add empty page in empty document
    auto page = document->get_Pages()->Add();
    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Add image on a page
    page->get_Paragraphs()->Add(image);

    // Save output document
    document->Save(_dataDir + outfilename);

    std::clog << "BMP to PDF convert: Finish" << std::endl;
}

Convertir DICOM en PDF

DICOM est le format standard de l’industrie médicale pour la création, le stockage, la transmission et la visualisation d’images médicales numériques et de documents de patients examinés.

Aspsoe.PDF pour C++ vous permet de convertir des images DICOM et SVG, mais pour des raisons techniques, pour ajouter des images vous devez spécifier le type de fichier à ajouter au PDF :

  1. Créez une Classe String pour le nom de chemin et le nom de fichier.
  2. Instancier l’objet Document.
  3. Ajouter une Page à la collection de pages du document.
  4. Aspose.PDF TDicom est ajouté à la Page en tant que Paragraphe.
  5. Charger et Enregistrer le fichier image d’entrée.

Le code suivant montre comment convertir des fichiers DICOM au format PDF avec Aspose.PDF. Vous devez charger l’image DICOM, placer l’image sur une page dans un fichier PDF et enregistrer le résultat en tant que PDF.

void ConvertDICOMtoPDF()
{
    std::clog << "DICOM to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("CR_Anno.dcm");
    String outfilename("PDFWithDicomImage_out.pdf");

    // Instantiate Document Object
    auto document = MakeObject<Document>();

    // Add a page to pages collection of document
    auto page = document->get_Pages()->Add();

    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);
    image->set_FileType(Aspose::Pdf::ImageFileType::Dicom);

    page->get_Paragraphs()->Add(image);

    // Save output as PDF format
    document->Save(_dataDir + outfilename);
    std::clog << "DICOM to PDF convert: Finish" << std::endl;
}

Convertir EMF en PDF

EMFEMF stocke des images graphiques de manière indépendante du périphérique. Les métadonnées EMF se composent d’enregistrements de longueur variable dans un ordre chronologique qui peuvent restituer l’image stockée après analyse sur n’importe quel périphérique de sortie. Par ailleurs, vous pouvez convertir EMF en image PDF en utilisant les étapes ci-dessous :

  1. Créez une Classe String pour le nom de chemin et le nom de fichier.
  2. Une instance d’un nouvel objet Document est créée.
  3. Ajoutez une nouvelle Page à ce Document.
  4. A new Aspose.Pdf TIFF is created.
  5. L’objet Aspose.PDF TIFF est initialisé en utilisant le fichier d’entrée.
  6. Aspose.PDF TIFF est ajouté à la Page en tant que Paragraphe.
  7. Charger et Enregistrer le fichier image d’entrée.

Moreover, the following code snippet shows how to convert an EMF to PDF with C++ in your code snippet:

void ConvertEMFtoPDF() 
{
    std::clog << "EMF to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.emf");
    String outfilename("ImageToPDF_emf.pdf");

    auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
    auto myimage = MakeObject<System::Drawing::Bitmap>(fileStream);

    auto document = MakeObject<Document>();
    auto page = document->get_Pages()->Add();

    auto currentImage = MakeObject<System::IO::MemoryStream>();
    myimage->Save(currentImage, System::Drawing::Imaging::ImageFormat::get_Tiff());

    auto imageht = MakeObject<Aspose::Pdf::Image>();
    imageht->set_ImageStream(currentImage);
    page->get_Paragraphs()->Add(imageht);

    document->Save(_dataDir + outfilename);

    std::clog << "EMF to PDF convert: Finish" << std::endl;
}

Convertir JPG en PDF

Pas besoin de se demander comment convertir JPG en PDF, car la bibliothèque Aspose.PDF pour C++ a la meilleure solution.

Vous pouvez très facilement convertir des images JPG en PDF avec Aspose.PDF pour C++ en suivant les étapes :

  1. Créez une Classe String pour le chemin et le nom de fichier.
  2. Une instance d’un nouvel objet Document est créée.
  3. Ajoutez une nouvelle Page à ce Document.
  4. Une nouvelle Aspose::Pdf::Image est créée.
  5. L’objet Image d’Aspose.PDF est initialisé à l’aide du fichier d’entrée.
  6. Aspose.PDF Image est ajouté à la Page en tant que Paragraphe.
  7. Chargez et enregistrez le fichier image d’entrée.

Le code ci-dessous montre comment convertir une image JPG en PDF en utilisant C++ :

void ConvertJPEGtoPDF() 
{
    std::clog << "JPEG to PDF convert: Start" << std::endl;
    // Chaîne pour le nom du chemin
    String _dataDir("C:\\Samples\\Conversion\\");

    // Chaîne pour le nom du fichier d'entrée
    String infilename("sample.jpg");

    // Chaîne pour le nom du fichier d'entrée
    String outfilename("ImageToPDF-JPEG.pdf");

    // Ouvrir le document
    auto document = MakeObject<Document>();

    // Ajouter une page vide dans un document vide
    auto page = document->get_Pages()->Add();
    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Ajouter l'image sur une page
    page->get_Paragraphs()->Add(image);

    // Enregistrer le document de sortie
    document->Save(_dataDir + outfilename);
    std::clog << "JPEG to PDF convert: Finish" << std::endl;
}

Ensuite, vous pouvez voir comment convertir une image en PDF avec la même hauteur et largeur de la page. Nous allons obtenir les dimensions de l’image et, en conséquence, définir les dimensions de page du document PDF avec les étapes suivantes :

  1. Charger le fichier image d’entrée
  2. Obtenir la hauteur et la largeur de l’image
  3. Définir la hauteur, la largeur et les marges d’une page
  4. Enregistrer le fichier PDF de sortie

Le code suivant montre comment convertir une image en PDF avec la même hauteur et largeur de page en utilisant C++ :

void ConvertJPGtoPDF_fitsize() 
{
    std::clog << "JPEG to PDF convert: Start" << std::endl;
    // String for path name
    String _dataDir("C:\\Samples\\Conversion\\");

    // String for input file name
    String infilename("sample.jpg");

    // String for input file name
    String outfilename("ImageToPDF-JPG.pdf");

    // Open document
    auto document = MakeObject<Document>();

    // Add empty page in empty document
    auto page = document->get_Pages()->Add();
    auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
    auto bitMap = MakeObject<System::Drawing::Bitmap>(fileStream);


    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Add image on a page
    page->get_Paragraphs()->Add(image);

    // Set page dimensions and margins
    page->get_PageInfo()->set_Height(bitMap->get_Height());
    page->get_PageInfo()->set_Width(bitMap->get_Width());
    page->get_PageInfo()->get_Margin()->set_Bottom(0);
    page->get_PageInfo()->get_Margin()->set_Top(0);
    page->get_PageInfo()->get_Margin()->set_Right(0);
    page->get_PageInfo()->get_Margin()->set_Left(0);
    page->get_Paragraphs()->Add(image);

    // Save output document
    document->Save(_dataDir + outfilename);
    std::clog << "JPEG to PDF convert: Finish" << std::endl;
}

Convertir PNG en PDF

Aspose.PDF pour C++ prend en charge la fonctionnalité de conversion des images PNG au format PDF. Consultez l’extrait de code suivant pour réaliser votre tâche.

PNG fait référence à un type de format de fichier d’image matricielle qui utilise une compression sans perte, ce qui le rend populaire parmi ses utilisateurs.

Vous pouvez convertir une image PNG en PDF en suivant les étapes ci-dessous :

  1. Créez une Classe String pour le nom du chemin et le nom du fichier.
  2. Une instance d’un nouvel objet Document est créée.
  3. Ajouter une nouvelle page à ce Document.
  4. Un nouveau PNG Aspose.Pdf est créé.
  5. L’objet PNG Aspose.PDF est initialisé à l’aide du fichier d’entrée.
  6. Le PNG Aspose.PDF est ajouté à la page en tant que paragraphe.
  7. Charger et enregistrer le fichier image d’entrée.

De plus, l’extrait de code ci-dessous montre comment convertir un PNG en PDF dans vos applications C++ :

void ConvertPNGtoPDF() 
{
    std::clog << "PNG to PDF convert: Start" << std::endl;
    // Chaîne pour le nom du chemin
    String _dataDir("C:\\Samples\\Conversion\\");

    // Chaîne pour le nom du fichier d'entrée
    String infilename("sample.png");

    // Chaîne pour le nom du fichier de sortie
    String outfilename("ImageToPDF-PNG.pdf");

    // Ouvrir le document
    auto document = MakeObject<Document>();

    // Ajouter une page vide dans le document vide
    auto page = document->get_Pages()->Add();
    auto image = MakeObject<Aspose::Pdf::Image>();
    image->set_File(_dataDir + infilename);

    // Ajouter l'image sur une page
    page->get_Paragraphs()->Add(image);

    // Enregistrer le document de sortie
    document->Save(_dataDir + outfilename);
    std::clog << "PNG to PDF convert: Finish" << std::endl;
}

Convertir SVG en PDF

Aspose.PDF pour C++ explique comment convertir des images SVG en format PDF et comment obtenir les dimensions du fichier source SVG.

Les graphiques vectoriels évolutifs (SVG) sont une famille de spécifications d’un format de fichier basé sur XML pour des graphiques vectoriels bidimensionnels, à la fois statiques et dynamiques (interactifs ou animés). La spécification SVG est une norme ouverte qui est en développement par le World Wide Web Consortium (W3C) depuis 1999.

Les images SVG et leurs comportements sont définis dans des fichiers texte XML. Cela signifie qu’ils peuvent être recherchés, indexés, scriptés et, si nécessaire, compressés. En tant que fichiers XML, les images SVG peuvent être créées et éditées avec n’importe quel éditeur de texte, mais il est souvent plus pratique de les créer avec des programmes de dessin tels qu’Inkscape.

  1. Créez une classe String pour le nom du chemin et le nom du fichier.
  2. Créez une instance de la classe SvgLoadOptions.
  3. Créez une instance de la classe Document avec le nom de fichier source mentionné et les options.
  4. Enregistrez le document avec le nom de fichier souhaité.

Le fragment de code suivant montre le processus de conversion d’un fichier SVG en format PDF avec Aspose.PDF pour C++.

void ConvertSVGtoPDF() 
{
    std::clog << "SVG to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.svg");
    String outfilename("ImageToPDF-SVG.pdf");

    auto options = MakeObject<SvgLoadOptions>();
    try {
    auto document = MakeObject<Document>(_dataDir + infilename, options);
    document->Save(_dataDir + outfilename);
    }
    catch (System::Exception ex) {
    std::cerr << ex->get_Message() << std::endl;
    }
    std::clog << "SVG to PDF convert: Finish" << std::endl;
}

Сonsidérer un exemple avec des fonctionnalités avancées :

void ConvertSVGtoPDF_Advanced()
{
    std::clog << "Conversion SVG en PDF : Début" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("Sweden-Royal-flag-grand-coa.svg");
    String outfilename("ImageToPDF-SVG.pdf");

    auto options = MakeObject<SvgLoadOptions>();
    options->set_AdjustPageSize(true);
    options->ConversionEngine = SvgLoadOptions::ConversionEngines::NewEngine;

    try {
    auto document = MakeObject<Document>(_dataDir + infilename, options);
    document->Save(_dataDir + outfilename);
    }
    catch (System::Exception ex) {
    std::cerr << ex->get_Message() << std::endl;
    }

    std::clog << "Conversion SVG en PDF : Fin" << std::endl;
}

Convertir TIFF en PDF

Le format de fichier Aspose.PDF est pris en charge, qu’il s’agisse d’une image TIFF à un seul cadre ou à plusieurs cadres. Cela signifie que vous pouvez convertir l’image TIFF en PDF dans vos applications C++.

TIFF ou TIF, Tagged Image File Format, représente des images raster destinées à être utilisées sur une variété d’appareils conformes à cette norme de format de fichier. L’image TIFF peut contenir plusieurs cadres avec différentes images. Le format de fichier Aspose.PDF est également pris en charge, qu’il s’agisse d’une image TIFF à un seul cadre ou à plusieurs cadres. Vous pouvez donc convertir l’image TIFF en PDF dans vos applications C++. Par conséquent, nous allons examiner un exemple de conversion d’une image TIFF multi-pages en document PDF multi-pages avec les étapes ci-dessous :

  1. Créer une Classe String pour le chemin d’accès et le nom de fichier.
  2. Un instance d’un nouvel objet Document est créé.
  3. Ajoutez une nouvelle Page à ce Document.
  4. Un nouveau Aspose.Pdf TIFF est créé.
  5. L’objet Aspose.PDF TIFF est initialisé en utilisant le fichier d’entrée.
  6. Aspose.PDF TIFF est ajouté à la Page en tant que Paragraphe.
  7. Chargez et enregistrez le fichier image d’entrée.

De plus, l’extrait de code suivant montre comment convertir une image TIFF multi-pages ou multi-cadres en PDF avec C++ :

void ConvertTIFFtoPDF() 
{
    std::clog << "TIFF to PDF convert: Start" << std::endl;

    String _dataDir("C:\\Samples\\Conversion\\");
    String infilename("sample.tiff");
    String outfilename("ImageToPDF-TIFF.pdf");

    auto fileStream = System::IO::File::OpenRead(_dataDir + infilename);
    auto myimage = MakeObject<System::Drawing::Bitmap>(fileStream);

    auto document = MakeObject<Document>();
    auto page = document->get_Pages()->Add();

    auto currentImage = MakeObject<System::IO::MemoryStream>();
    myimage->Save(currentImage, System::Drawing::Imaging::ImageFormat::get_Tiff());

    auto imageht = MakeObject<Aspose::Pdf::Image>();
    imageht->set_ImageStream(currentImage);
    page->get_Paragraphs()->Add(imageht);

    document->Save(_dataDir + outfilename);

    std::clog << "TIFF to PDF convert: Finish" << std::endl;
}