[{"data":1,"prerenderedAt":124},["ShallowReactive",2],{"topic:pdf-export":3},[4,12,19,24,30,35,40,45,50,55,61,66,72,77,83,88,93,98,103,108,113,118],{"path":5,"title":6,"description":7,"type":8,"topics":9,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf","Exporting Excel Reports to PDF","Convert .xlsx reports to PDF from Python the honest way: LibreOffice headless, Excel COM, or reportlab — plus openpyxl page setup so the output paginates cleanly.","guide",[10],"pdf-export",null,{"path":13,"title":14,"description":15,"type":16,"topics":17,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fadd-bookmarks-and-a-cover-page-to-an-excel-pdf-export","Add Bookmarks and a Cover Page to an Excel PDF Export","Finish a multi-sheet Excel PDF export like a real report: read the sheet bookmarks LibreOffice already writes, prepend a cover page with a contents list built with reportlab, rebuild a nested bookmark tree with pypdf, number pages so the cover is not page 1, open the PDF with the bookmarks panel showing, and test the result.","how-to",[10,18],"report-layouts",{"path":20,"title":21,"description":22,"type":16,"topics":23,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fadd-headers-footers-and-page-numbers-to-an-excel-pdf","Add Headers, Footers and Page Numbers to an Excel PDF","Make an exported PDF look like a document — set headers and footers with openpyxl, repeat the title row on every page, and control margins and page breaks before converting.",[10],{"path":25,"title":26,"description":27,"type":16,"topics":28,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fcheck-a-pdf-export-for-cut-off-columns","Check a PDF Export for Cut-Off Columns","Catch the PDF exports nobody wants to receive before they are sent: detect columns that spill onto extra pages, numbers printed as ### because a column is too narrow, and text shrunk below a readable size by fit-to-page, by reading the PDF back with pdfplumber, then fix the page setup with openpyxl and confirm the check passes.",[10,29],"reliable-jobs",{"path":31,"title":32,"description":33,"type":16,"topics":34,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fconvert-excel-file-to-pdf-with-python","Convert an Excel File to PDF with Python","Convert .xlsx to PDF in Python with LibreOffice headless and subprocess: set page layout via openpyxl, run soffice safely with a timeout, plus a Windows COM path.",[10],{"path":36,"title":37,"description":38,"type":16,"topics":39,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fconvert-excel-to-pdf-on-linux-with-libreoffice","Convert Excel to PDF on Linux with LibreOffice","Headless LibreOffice converts a workbook to PDF with no Excel, licence or desktop session — with the profile, timeout and page-setup details that make it reliable in a container.",[10],{"path":41,"title":42,"description":43,"type":16,"topics":44,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fconvert-only-selected-sheets-of-a-workbook-to-pdf","Convert Only Selected Sheets of a Workbook to PDF","Export the summary without the raw data — build a trimmed copy of the workbook, or use LibreOffice's export filter, and control the order sheets appear in the PDF.",[10],{"path":46,"title":47,"description":48,"type":16,"topics":49,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fcreate-a-pdf-report-from-excel-data-with-reportlab","Create a PDF Report from Excel Data with ReportLab","Turn Excel data into a designed PDF report with ReportLab, without Excel or LibreOffice: read and summarise the workbook with pandas, lay out a title, summary text and a native vector chart, build a table with formatted numbers, wrapped text, zebra stripes, bold subtotals and a header row that repeats on every page, add a \"page X of Y\" footer, and check the result with pypdf.",[10],{"path":51,"title":52,"description":53,"type":16,"topics":54,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fexport-an-excel-report-to-pdf-a-for-archiving","Export an Excel Report to PDF\u002FA for Archiving","Export Excel reports to PDF\u002FA from Python with LibreOffice for long-term archiving: choose between PDF\u002FA-1b, 2b and 3b, pass the export option on the command line, set the document title and author, check the result for the PDF\u002FA identification, output intent and embedded fonts, and avoid the post-processing steps that silently break conformance.",[10],{"path":56,"title":57,"description":58,"type":16,"topics":59,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Ffit-an-excel-sheet-to-one-page-in-pdf","Fit an Excel Sheet to One Page Wide When Exporting to PDF","Stop wide Excel reports from spilling columns onto extra PDF pages — set fit-to-width with openpyxl, predict how small the text will get before converting, and when it gets too small, use landscape, narrower margins, hidden helper columns or a two-page-wide layout with repeated labels. Every layout measured in a LibreOffice PDF export.",[10,60],"cell-styling",{"path":62,"title":63,"description":64,"type":16,"topics":65,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fmerge-excel-pdf-exports-into-one-file","Merge Several Excel PDF Exports into One File","Combine the PDFs exported from several Excel workbooks into one document with pypdf — a bookmark per report, page labels such as \"North 2\", a title and an open bookmarks panel — and know what merging loses: accessibility tags and continuous page numbers. When those matter, combine the workbooks first and convert once.",[10],{"path":67,"title":68,"description":69,"type":16,"topics":70,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fpassword-protect-a-pdf-exported-from-excel","Password-Protect a PDF Exported from Excel","Encrypt the PDF your Excel report becomes: AES-256 with pypdf after conversion, or encryption set directly in the LibreOffice export filter (and why it is weaker), the difference between open and permissions passwords, one password per recipient, verifying the file really is locked, and what PDF permissions can and cannot stop.",[10,71],"protection-and-sharing",{"path":73,"title":74,"description":75,"type":16,"topics":76,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fsign-a-pdf-report-digitally-with-python","Sign a PDF Report Digitally with Python","Add a cryptographic signature to a PDF exported from an Excel report with pyHanko, so readers can prove who issued it and that nobody changed it afterwards: load a certificate from a PKCS#12 file, sign with a reason and location, add a visible signature box, validate the result in Python and with pdfsig, and see exactly what a one-byte change does to it.",[10,71],{"path":78,"title":79,"description":80,"type":16,"topics":81,"kind":11},"\u002Fautomating-reporting-workflows\u002Fexporting-excel-reports-to-pdf\u002Fturn-pdf-report-pages-into-images","Turn PDF Report Pages into Images","Render the pages of a PDF exported from an Excel report as PNG or JPEG images with pypdfium2, which installs with pip and needs no Poppler: choose the resolution for screen, email or print, trim the white margins, make small thumbnails for a report index, and compare file sizes and formats — with pdftoppm as the command-line alternative.",[10,82],"charts-and-images",{"path":84,"title":85,"description":86,"type":16,"topics":87,"kind":11},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Ffill-pdf-forms-from-excel-rows-with-python","Fill PDF Forms from Excel Rows with Python","Fill a fillable PDF form — an expense claim, an order form, a government template — once per spreadsheet row with pypdf: list the form's field names, map sheet columns to fields, format numbers and dates as text, tick checkboxes with the right state name, flatten the result so it cannot be edited, and verify every filled file.",[10,18],{"path":89,"title":90,"description":91,"type":16,"topics":92,"kind":11},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-customer-account-statements-from-a-ledger","Generate Customer Account Statements from a Ledger","Produce a statement workbook for every customer from one receivables ledger with pandas and XlsxWriter: opening balance brought forward, the period transactions with a running balance, closing balance, an ageing summary built by allocating payments to the oldest invoices, a statement layout with formats, and reconciliation checks against the ledger.",[18,10],{"path":94,"title":95,"description":96,"type":16,"topics":97,"kind":11},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-one-pdf-per-excel-row","Generate One PDF per Excel Row","Turn every row of a sheet into its own PDF — customer statements, certificates, remittance advices — either drawn directly with reportlab or by filling an Excel template per row and converting all of them in one LibreOffice call; with safe file names, a combined print file, and a check that each PDF contains the right customer and amount.",[10,18],{"path":99,"title":100,"description":101,"type":16,"topics":102,"kind":11},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fgenerate-word-documents-from-excel-rows","Generate Word Documents from Excel Rows with Python","Do a mail merge in Python: one Word letter, statement or certificate per row of a spreadsheet, filled from a .docx template. Replace placeholders even when Word has split them across formatting runs, fill header, footer and table placeholders, add a row per line item, format money and dates, catch unfilled fields and convert the results to PDF.",[18,10],{"path":104,"title":105,"description":106,"type":16,"topics":107,"kind":11},"\u002Fautomating-reporting-workflows\u002Fgenerating-excel-reports-from-templates\u002Fprint-mailing-labels-from-an-excel-address-list","Print Mailing Labels from an Excel Address List","Turn an Excel address list into a print-ready PDF of mailing labels with pandas and reportlab: describe a label sheet such as Avery L7160 or 5160 by its measurements, tidy addresses by dropping blank lines, shrink long lines to fit, start on a partly used sheet, print an alignment test, and check every address landed inside its label.",[18,10],{"path":109,"title":110,"description":111,"type":16,"topics":112,"kind":11},"\u002Fformatting-and-charting-excel-reports-with-python\u002Finserting-images-and-logos-into-excel\u002Frender-an-excel-range-as-an-image","Render an Excel Range as an Image with Python","Turn a formatted block of cells — a KPI table, a summary, a small report — into a PNG for an email body, a chat message or a slide: LibreOffice on Linux via a print area and a PDF, cropped with Pillow at any resolution; xlwings to_png on Windows with Excel; and when a pure-Python rendering is enough.",[82,10],{"path":114,"title":115,"description":116,"type":16,"topics":117,"kind":11},"\u002Fformatting-and-charting-excel-reports-with-python\u002Fstyling-excel-cells-with-openpyxl\u002Finsert-page-breaks-between-groups-with-openpyxl","Insert Page Breaks Between Groups with openpyxl","Make each region, customer or department start on a new printed page: find where each group ends, add manual row breaks with openpyxl, repeat the header on every page, add column breaks for wide sheets, clear old breaks, do the same with XlsxWriter, and prove the result by rendering a PDF and checking which group starts each page.",[60,18,10],{"path":119,"title":120,"description":121,"type":16,"topics":122,"kind":11},"\u002Fgetting-started-with-python-excel-automation\u002Fautomating-excel-with-com-and-pywin32\u002Fprint-an-excel-workbook-from-python-with-win32com","Print an Excel Workbook from Python with win32com","Send workbooks to a printer from a Python script on Windows: prepare the page setup so the printout is right (fit to width, landscape, repeated header rows, print area) with openpyxl or COM, list printers and pick one, call PrintOut for whole workbooks, single sheets or page ranges, print many files in a loop without dialogs, and fall back to LibreOffice or PDF when Excel is not available.",[123,10],"com-automation",1790972052271]