Pdf avec Node.js via C++

Conversion du classeur Excel en PDF

Les fichiers PDF sont largement utilisés pour échanger des documents entre les organisations, les secteurs gouvernementaux et les particuliers. Il s’agit d’un format de document standard et les développeurs de logiciels sont souvent invités à trouver un moyen de convertir des fichiers Microsoft Excel en documents PDF.

Aspose.Cells prend en charge la conversion de fichiers Excel en PDF et maintient une haute fidélité visuelle dans la conversion.

Conversion directe

Aspose.Cells for Node.js via C++ supporte la conversion des feuilles de calcul en PDF indépendamment des autres logiciels. Il suffit d’enregistrer un fichier Excel en PDF en utilisant la méthode save(string, SaveFormat) de la classe Workbook. La méthode save(string, SaveFormat) fournit le membre d’énumération SaveFormat.Pdf qui convertit les fichiers Excel natifs en PDF.

Suivez les étapes ci-dessous pour convertir directement les feuilles de calcul Excel au format PDF :

  1. Instanciez un objet de la classe Workbook en appelant son constructeur vide.
  2. Vous pouvez ouvrir/charger un fichier de modèle existant ou sauter cette étape si vous créez le classeur à partir de zéro.
  3. Effectuez les travaux (saisie de données, application de mise en forme, définition de formules, insertion d’images ou d’autres objets graphiques, etc.) sur la feuille de calcul à l’aide des API Aspose.Cells.
  4. Une fois le code de la feuille de calcul terminé, appelez la méthode save(string, SaveFormat) de la classe Workbook pour enregistrer la feuille de calcul.

Le format de fichier doit être PDF, donc sélectionnez Pdf (une valeur prédéfinie) dans l’énumération SaveFormat pour générer le document PDF final.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "Book1.xls");

// Instantiate the Workbook object
// Open an Excel file
const workbook = new AsposeCells.Workbook(filePath);

// Save the document in PDF format
workbook.save(path.join(dataDir, "output.pdf"), AsposeCells.SaveFormat.Pdf);

Conversion avancée

Vous pouvez également choisir d’utiliser la classe PdfSaveOptions pour définir différents attributs pour la conversion. Le fait de définir différentes propriétés de la classe PdfSaveOptions vous donne le contrôle sur les paramètres d’impression, de police, de sécurité et de compression pour le fichier PDF de sortie.

La propriété la plus importante est getCompliance() qui vous permet de définir le niveau de conformité aux normes PDF. Actuellement, vous pouvez enregistrer au format 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 et PDF/A-3u. Notez qu’avec le format PDF/A, la taille du fichier de sortie est plus grande que celle d’un fichier PDF normal.

Enregistrement du classeur en fichiers conformes PDF/A

L’exemple de code ci-dessous démontre comment utiliser la classe PdfSaveOptions pour enregistrer des fichiers Excel au format PDF/A conforme.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");

// Instantiate new workbook
const workbook = new AsposeCells.Workbook();

// Insert a value into the A1 cell in the first worksheet
workbook.getWorksheets().get(0).getCells().get(0, 0).putValue("Testing PDF/A");

// Define PdfSaveOptions
const pdfSaveOptions = new AsposeCells.PdfSaveOptions();

// Set the compliance type
pdfSaveOptions.setCompliance(AsposeCells.PdfCompliance.PdfA1b);

// Save the file
workbook.save(path.join(dataDir, "output.pdf"), pdfSaveOptions);

Définir l’heure de création du PDF

Avec la classe PdfSaveOptions, vous pouvez obtenir ou définir l’heure de création du PDF. Le code suivant démontre l’utilisation de la propriété PdfSaveOptions.getCreatedTime() pour définir l’heure de création du fichier PDF.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const inputPath = path.join(dataDir, "Book1.xlsx");
// Load excel file containing charts
const workbook = new AsposeCells.Workbook(inputPath);

// Create an instance of PdfSaveOptions
const options = new AsposeCells.PdfSaveOptions();
options.setCreatedTime(new Date());

// Save the workbook to PDF format while passing the object of PdfSaveOptions
workbook.save(path.join(dataDir, "output.pdf"), options);

Définir l’option ContentCopyForAccessibility

Avec la classe PdfSaveOptions, vous pouvez obtenir ou définir l’option de PDF getAccessibilityExtractContent() pour contrôler l’accès au contenu dans le PDF converti.

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// Source directory
const sourceDir = path.join(__dirname, "data");

// Output directory
const outputDir = path.join(__dirname, "output");

const inputPath = path.join(sourceDir, "BookWithSomeData.xlsx");

// Load excel file containing some data
const workbook = new AsposeCells.Workbook(inputPath);

// Create an instance of PdfSaveOptions and pass SaveFormat to the constructor
const pdfSaveOpt = new AsposeCells.PdfSaveOptions();

// Create an instance of PdfSecurityOptions
const securityOptions = new AsposeCells.PdfSecurityOptions();

// Set AccessibilityExtractContent to true
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(path.join(outputDir, "outFile.pdf"), pdfSaveOpt);

Exporter les propriétés personnalisées vers un PDF

Avec la classe PdfSaveOptions, vous pouvez exporter les propriétés personnalisées du classeur source vers le PDF. L’énumérateur PdfCustomPropertiesExport est fourni pour spécifier la manière dont les propriétés sont exportées. Ces propriétés peuvent être observées dans Adobe Acrobat Reader en cliquant sur Fichier, puis sur l’option propriétés comme indiqué dans l’image suivante. Le fichier modèle “sourceWithCustProps.xlsx” peut être téléchargé ici pour les tests et le fichier PDF de sortie “outSourceWithCustProps” est disponible ici pour l’analyse.

todo:image_alt_text

const path = require("path");
const AsposeCells = require("aspose.cells.node");

// The path to the documents directory.
const dataDir = path.join(__dirname, "data");
const filePath = path.join(dataDir, "sourceWithCustProps.xlsx");

// Load excel file containing custom properties
const workbook = new AsposeCells.Workbook(filePath);

// Create an instance of PdfSaveOptions
const pdfSaveOptions = new AsposeCells.PdfSaveOptions();

// Set CustomPropertiesExport property to PdfCustomPropertiesExport.Standard
pdfSaveOptions.setCustomPropertiesExport(AsposeCells.PdfCustomPropertiesExport.Standard);

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

Attributs de conversion

Nous travaillons à améliorer les fonctionnalités de conversion avec chaque nouvelle version. La conversion d’Excel en PDF d’Aspose.Cell a encore quelques limitations. MapChart n’est pas pris en charge lors de la conversion au format PDF. De plus, certains objets de dessin ne sont pas bien pris en charge.

Le tableau suivant liste toutes les fonctionnalités entièrement ou partiellement prises en charge lors de l’exportation vers PDF à l’aide d’Aspose.Cells. Ce tableau n’est pas définitif et ne couvre pas toutes les attributs de la feuille de calcul, mais il identifie les fonctionnalités qui ne sont pas prises en charge ou partiellement prises en charge pour la conversion en PDF.

Élément du document Attribut Pris en charge Notes
Alignement Oui
Paramètres de fond Oui
Bordure Couleur Oui
Bordure Style de ligne Oui
Bordure Largeur de ligne Oui
Données de cellule Oui
Commentaires Oui
Mise en forme conditionnelle Oui
Propriétés du document Oui
Objets de dessin Partiellement Les effets d’ombre et 3D pour les objets graphiques ne sont pas bien pris en charge ; WordArt et SmartArt sont partiellement pris en charge.
Police Taille Oui
Police Couleur Oui
Police Style Oui
Police Souligner Oui
Police Effets Oui
Images Oui
Hyperlien Oui
Graphiques Partiellement Le MapChart n’est pas pris en charge.
Cellules Fusionnées Oui
Saut de page Oui
Configuration de la page En-tête/Pied de page Oui
Configuration de la page Marges Oui
Configuration de la page Orientation de la page Oui
Configuration de la page Taille de la page Oui
Configuration de la page Zone d’impression Oui
Configuration de la page Titres à imprimer Oui
Configuration de la page Mise à l’échelle Oui
Hauteur de ligne/Largeur de colonne Oui
Langue RTL (de droite à gauche) Oui

Sujets avancés