Adatta tutte le colonne del foglio di lavoro su una singola pagina PDF con JavaScript via C++
Contents
[
Hide
]
A volte si desidera generare un file PDF che adatti tutte le colonne di un foglio di lavoro in una sola pagina. La proprietà PdfSaveOptions.allColumnsInOnePagePerSheet fornisce questa funzionalità in modo molto semplice da utilizzare. Calcoli complessi come l’altezza e la larghezza dell’output PDF sono gestiti internamente e si basano sui dati presenti nel foglio di lavoro.
Adatta le Colonne del Foglio di Lavoro su una Singola Pagina PDF
PdfSaveOptions.allColumnsInOnePagePerSheet assicura che tutte le colonne di un foglio di lavoro siano rappresentate su una singola pagina PDF, anche se le righe possono espandersi su più pagine a seconda dei dati nel foglio.
Il codice di esempio qui sotto mostra come utilizzare la proprietà PdfSaveOptions.allColumnsInOnePagePerSheet per rendere un ampio foglio di lavoro con 100 colonne.
<!DOCTYPE html>
<html>
<head>
<title>Save Workbook to PDF Example</title>
</head>
<body>
<h1>Save Workbook to PDF Example</h1>
<input type="file" id="fileInput" accept=".xls,.xlsx" />
<button id="runExample">Run Example</button>
<a id="downloadLink" style="display: none;">Download Result</a>
<div id="result"></div>
</body>
<script src="aspose.cells.js.min.js"></script>
<script type="text/javascript">
const { Workbook, PdfSaveOptions, SaveFormat, Utils } = AsposeCells;
AsposeCells.onReady({
license: "/lic/aspose.cells.enc",
fontPath: "/fonts/",
fontList: [
"arial.ttf",
"NotoSansSC-Regular.ttf"
]
}).then(() => {
console.log("Aspose.Cells initialized");
});
document.getElementById('runExample').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const resultDiv = document.getElementById('result');
if (!fileInput.files.length) {
resultDiv.innerHTML = '<p style="color: red;">Please select an Excel file.</p>';
return;
}
const file = fileInput.files[0];
const arrayBuffer = await file.arrayBuffer();
// Create and initialize an instance of Workbook
const workbook = new Workbook(new Uint8Array(arrayBuffer));
// Create and initialize an instance of PdfSaveOptions
const saveOptions = new PdfSaveOptions();
// Set AllColumnsInOnePagePerSheet to true (converted from setter to property)
saveOptions.allColumnsInOnePagePerSheet = true;
// Save Workbook to PDF format by passing the object of PdfSaveOptions
const outputData = workbook.save(SaveFormat.Pdf, saveOptions);
const blob = new Blob([outputData], { type: "application/pdf" });
const downloadLink = document.getElementById('downloadLink');
downloadLink.href = URL.createObjectURL(blob);
downloadLink.download = 'output.out.pdf';
downloadLink.style.display = 'block';
downloadLink.textContent = 'Download PDF File';
resultDiv.innerHTML = '<p style="color: green;">PDF created successfully! Click the download link to get the file.</p>';
});
</script>
</html>
Quando un dato foglio di lavoro ha molte colonne, il file PDF generato potrebbe mostrare il contenuto in dimensioni molto ridotte. È comunque leggibile se ingrandito in un’applicazione di visualizzazione come Acrobat Reader.
Se il foglio di calcolo contiene formule, è meglio chiamare Workbook.calculateFormula() proprio prima di rendere il foglio di calcolo in formato PDF. In questo modo si garantisce il ricalcolo dei valori dipendenti dalle formule e la visualizzazione dei valori corretti nel PDF.