In this post, you’ll learn how to convert Excel files to PDFs in your JavaScript application using PSPDFKit’s XLSX to PDF JavaScript API. With our API, you can convert up to 100 PDF files per month for free. All you need to do is create a free account to get access to your API key.
PSPDFKit API
Document conversion is just one of our 30+ PDF API tools. You can combine our conversion tool with other tools to create complex document processing workflows. You’ll be able to convert various file formats into PDFs and then:
-
Merge several resulting PDFs into one
-
OCR, watermark, or flatten PDFs
-
Remove or duplicate specific PDF pages
Once you create your account, you’ll be able to access all our PDF API tools.
Step 1 — Creating a Free Account on PSPDFKit
Go to our website, where you’ll see the page below, prompting you to create your free account.
Once you’ve created your account, you’ll be welcomed by the page below, which shows an overview of your plan details.
As you can see in the bottom-left corner, you’ll start with 100 documents to process, and you’ll be able to access all our PDF API tools.
Step 2 — Obtaining the API Key
After you’ve verified your email, you can get your API key from the dashboard. In the menu on the left, click API Keys. You’ll see the following page, which is an overview of your keys:
Copy the Live API Key, because you’ll need this for the Excel to PDF API.
Step 3 — Setting Up Folders and Files
Now, create a folder called excel_to_pdf
and open it in a code editor. For this tutorial, you’ll use VS Code as your primary code editor. Next, create two folders inside excel_to_pdf
and name them input_documents
and processed_documents
.
Next, copy your Excel file to the input_documents
folder and rename it to document.xlsx
. You can use our demo document as an example.
Then, in the root folder, excel_to_pdf
, create a file called processor.js
. This is the file where you’ll keep your code.
Your folder structure will look like this:
excel_to_pdf ├── input_documents | └── document.xlsx ├── processed_documents └── processor.js
Step 4 — Installing Dependencies
To get started converting PDF pages, you first need to install the following dependencies:
-
axios — This package is used for making REST API calls.
-
Form-Data — This package is used for creating form data.
Use the command below to install both of them:
npm install axios npm install form-data
Step 5 — Writing the Code
Now, open the processor.js
file and paste the code below into it:
const axios = require('axios'); const FormData = require('form-data'); const fs = require('fs'); const formData = new FormData(); formData.append( 'instructions', JSON.stringify({ parts: [ { file: 'document', }, ], }), ); formData.append( 'document', fs.createReadStream('input_documents/document.xlsx'), )(async () => { try { const response = await axios.post( 'https://api.pspdfkit.com/build', formData, { headers: formData.getHeaders({ Authorization: 'Bearer YOUR API KEY HERE', }), responseType: 'stream', }, ); response.data.pipe( fs.createWriteStream('processed_documents/result.pdf'), ); } catch (e) { const errorString = await streamToString(e.response.data); console.log(errorString); } })(); function streamToString(stream) { const chunks = []; return new Promise((resolve, reject) => { stream.on('data', (chunk) => chunks.push(Buffer.from(chunk))); stream.on('error', (err) => reject(err)); stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')), ); }); }
ℹ️ Note: Make sure to replace
YOUR_API_KEY_HERE
with your API key.
Code Explanation
Here, you have a form variable that contains the instructions for the API. You’re using createReadStream
to read the input PDF file. You then have a function, axios.post()
, that’ll make the POST
request to the Excel to PDF API.
The response of the API is stored in the processed_documents
folder.
Output
To execute the code, use the following command:
On the successful execution of the code, you’ll see a new processed file named result.pdf
in the processed_documents
folder.
The folder structure will look like this:
excel_to_pdf ├── input_documents | └── document.xlsx ├── processed_documents | └── result.pdf └── processor.js
Final Words
In this post, you learned how to easily and seamlessly convert Excel files to PDF documents for your JavaScript application using our Excel to PDF JavaScript API.
You can integrate these functions into your existing applications. With the same API token, you can also perform other operations, such as merging several documents into a single PDF, adding watermarks, and more. To get started with a free trial, sign up here.
Permalink
Cannot retrieve contributors at this time
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import openpyxl | |
from reportlab.pdfgen import canvas | |
from reportlab.pdfbase import pdfmetrics | |
from reportlab.pdfbase.pdfmetrics import stringWidth | |
from reportlab.pdfbase.ttfonts import TTFont | |
import os | |
from pyPDF2 import PdfFileReader, PdfFileMerger | |
pdfmetrics.registerFont(TTFont(‘Arial’,‘Arial.ttf’)) | |
wb = openpyxl.load_workbook(‘F:\Python\py to pdf\Data.xlsx’) | |
sheet = wb.get_sheet_by_name(«Sheet1») | |
#print(sheet.cell(2,2).value) | |
page_width = 2156 | |
page_height = 3050 | |
start = 200 | |
start_2 = 700 | |
spread = 80 | |
categories = [«Roll Number: «,«Name: «,«Gender: «,«Age: «,«Board: «,«City: «,«Email: «] | |
university = «NED University Of Engineering And Technology» | |
def create_data(): | |
for i in range (2,14): | |
std_id = sheet.cell(row=i,column=1).value | |
std_name = sheet.cell(row=i,column=2).value | |
std_gender = sheet.cell(row=i,column=3).value | |
std_age = sheet.cell(row=i,column=4).value | |
std_board = sheet.cell(row=i,column=5).value | |
std_city = sheet.cell(row=i,column=6).value | |
std_email = sheet.cell(row=i,column=8).value | |
data=[std_id,std_name,std_gender,std_age,std_board,std_city,std_email] | |
c=canvas.Canvas(str(std_name)+‘.pdf’) | |
c.setPageSize((page_width,page_height)) | |
c.setFont(‘Arial’,80) | |
text_width = stringWidth(university,‘Arial’,80) | |
c.drawString((page_width—text_width)/2,2900,university) | |
y=2500 | |
for x in range(0,7): | |
c.setFont(‘Arial’,40) | |
c.drawString(start,y,categories[x]) | |
c.drawString(start_2,y,str(data[x])) | |
y-=spread | |
c.save() | |
def merge_data(): | |
files_dir = ‘F:\Python\py to pdf’ | |
pdf_files = [f for f in os.listdir(files_dir) if f.endswith(‘.pdf’)] | |
merger = PdfFileMerger() | |
for filename in pdf_files: | |
merger.append(PdfFileReader(os.path.join(files_dir,filename,‘rb’))) | |
merger.write(os.path.join(files_dir,‘merged_data.pdf’)) | |
create_data() | |
merge_data() |
Содержание
- Сохранение документов Excel в PDF на сервере
- How to Convert Excel to PDF Using JavaScript
- PSPDFKit API
- Step 1 — Creating a Free Account on PSPDFKit
- Step 2 — Obtaining the API Key
- Step 3 — Setting Up Folders and Files
- Step 4 — Installing Dependencies
- Step 5 — Writing the Code
- Code Explanation
- Output
- Final Words
- VBA Excel. Сохранение книг и листов в PDF
- Метод ExportAsFixedFormat
- Синтаксис
- Параметры
- Примеры экспорта в PDF
- Сохранение в PDF книги Excel
- Экспорт всей книги
- Экспорт части книги
- Convert Excel to PDF Using Python
- What is win32com?
- How to save Excel as PDF with VBA (10 examples)
- Saving Excel workbooks, sheets, charts, and ranges as PDF
- Save active sheet as PDF
- Save active workbook as PDF
- Save selection as PDF
- Save a range as PDF
- Save a chart as PDF
- Adapting the code to your scenario
- Notes for saving PDF documents
- Selecting specific worksheets before saving as PDF
- Looping and saving as separate PDFs
- Loop through sheets
- Loop through selected sheets
- Loop through charts
- Other PDF print options
- VBA Save to PDF Example using all the options
- Other fixed formats available (xlTypeXPS)
- Conclusion
Сохранение документов Excel в PDF на сервере
Не так давно появилась задача создать простой сервис по созданию PDF отчетов на основе офисных документов для интранета. И вроде бы все просто, но вот с сохранением Excel в PDF возникли проблемы. Интересно? Прошу под кат.
Как я и сказал, поначалу все казалось легко, у меня были собственные наработки, на хабре была статья. Но обо всем по порядку.
Мои наработки использовали сom объекты excel.application и метод saveAs, это прекрасно работало, пока требовалось взять обычный, красивый документ и сделать из него pdf, но в данном случае файлы были нет так просты.
Во-первых, документы предполагаются трех форматов — xls, xlsx и xml. Во вторых все документы содержат макросы, а некоторые ссылки на другие документы. В третьих они содержат кучу листов, и перекрестные ссылки между листами. Не нужные для отчета листы делаются скрытыми, а на самих листах в каше вспомогательных цифр отчетная информация выделялась областью печати. Нужно ли говорить, что saveAs игнорирует все это богатство и на выходе после танца с бубнами получаем абсолютно не читаемую картину.
Здесь я думаю необходимо сделать лирическое отступление и пояснить, почему с файлами творится такая неразбериха. Я работаю в очень крупной организации, бок обок с кучей бабушке пенсионного возраста. Они не могут даже сделать текст в ячейке жирным, но прекрасно могут говорить начальству о том, что они не «программисты» и не должны это уметь. Начальства у нас тоже много, и в силу жалости к бабушкам или своей компьютерной безграмотности, а быть может, по велению звезд жалобы бабушек поощряются, и все попытки разгрести бардак в документах пресекается.
Вернемся к нашим баранам. В выше упомянутой статье был предложен вариант конвертации «Как вижу» с использованием open office, этот вариант меня не устроил в силу ветреного отношения OO к MS. Некоторые документы действительно открывались в нем корректно, но чаще всего содержимое ехало еще до конвертации.
Был еще третий вариант. Печатать документы на виртуальный принтер, но я решил, что этот вариант я приберегу на самый крайний случай, так это костыль.
И тогда я обратился к гуглу и он дал мне эту замечательную ссылку. Описанный в ней метод ExportAsFixedFormat был тем, что нужно! Но меня опять постигла не удача.
Он начисто игнорировал области печати, а без них получалась каша. Я гуглил, оставлял вопросы на множестве форумах, в том числе и на англоязычных. Ответа не было. Я даже перенес код статьи в C#, но результат не изменился.
После недели изысканий, я решил плюнуть на все и использовать тот самый крайний вариант с виртуальным принтером, но каково же было мое изумление, когда и он проигнорировал область печати, притом, что если отправить документ из самого Excel все было нормально.
Путем проб и ошибок, танцев с бубнами и увлекательным чтением гугла я выяснил, области печати игнорируется при вызове этого метода и печати в php, C#, но почему то при использовании VBScript все работает как надо. Чем это вызвано я, к сожалению, так и не выяснил.
И так, было решено из PHP открывать VBS скрип и уже из него преобразовывать excel в pdf. Да, это тоже костыль, но не такой неуклюжий как виртуальный принтер.
Вот получившийся скрипт:
Dim XL
Dim XLWkbk
Dim ObjArgs
Dim paramSourceBookPath
Dim paramExportFilePath
set objargs = wscript.arguments
if objArgs.count exec(APPLICATION_SCRIPT_FOLDER.’\excel.vbs C:\tmp\test.xlsx C:\tmp\test.pdf»);
В сухом остатке мы имеем не совсем красивый, но 100% рабочий метод по преобразованию Excel в PDF, который гарантирует результат «Как на печати» без подводных камней.
Источник
How to Convert Excel to PDF Using JavaScript
In this post, you’ll learn how to convert Excel files to PDFs in your JavaScript application using PSPDFKit’s XLSX to PDF JavaScript API. With our API, you can convert up to 100 PDF files per month for free. All you need to do is create a free account to get access to your API key.
PSPDFKit API
Document conversion is just one of our 30+ PDF API tools. You can combine our conversion tool with other tools to create complex document processing workflows. You’ll be able to convert various file formats into PDFs and then:
Merge several resulting PDFs into one
OCR, watermark, or flatten PDFs
Remove or duplicate specific PDF pages
Once you create your account, you’ll be able to access all our PDF API tools.
Step 1 — Creating a Free Account on PSPDFKit
Go to our website, where you’ll see the page below, prompting you to create your free account.
Once you’ve created your account, you’ll be welcomed by the page below, which shows an overview of your plan details.
As you can see in the bottom-left corner, you’ll start with 100 documents to process, and you’ll be able to access all our PDF API tools.
Step 2 — Obtaining the API Key
After you’ve verified your email, you can get your API key from the dashboard. In the menu on the left, click API Keys. You’ll see the following page, which is an overview of your keys:
Copy the Live API Key, because you’ll need this for the Excel to PDF API.
Step 3 — Setting Up Folders and Files
Now, create a folder called excel_to_pdf and open it in a code editor. For this tutorial, you’ll use VS Code as your primary code editor. Next, create two folders inside excel_to_pdf and name them input_documents and processed_documents .
Next, copy your Excel file to the input_documents folder and rename it to document.xlsx . You can use our demo document as an example.
Then, in the root folder, excel_to_pdf , create a file called processor.js . This is the file where you’ll keep your code.
Your folder structure will look like this:
Step 4 — Installing Dependencies
To get started converting PDF pages, you first need to install the following dependencies:
axios — This package is used for making REST API calls.
Form-Data — This package is used for creating form data.
Use the command below to install both of them:
Step 5 — Writing the Code
Now, open the processor.js file and paste the code below into it:
ℹ️ Note: Make sure to replace YOUR_API_KEY_HERE with your API key.
Code Explanation
Here, you have a form variable that contains the instructions for the API. You’re using createReadStream to read the input PDF file. You then have a function, axios.post() , that’ll make the POST request to the Excel to PDF API.
The response of the API is stored in the processed_documents folder.
Output
To execute the code, use the following command:
On the successful execution of the code, you’ll see a new processed file named result.pdf in the processed_documents folder.
The folder structure will look like this:
Final Words
In this post, you learned how to easily and seamlessly convert Excel files to PDF documents for your JavaScript application using our Excel to PDF JavaScript API.
You can integrate these functions into your existing applications. With the same API token, you can also perform other operations, such as merging several documents into a single PDF, adding watermarks, and more. To get started with a free trial, sign up here.
Источник
VBA Excel. Сохранение книг и листов в PDF
Сохранение в PDF книги Excel, группы листов, одного листа или отдельного диапазона с помощью кода VBA. Метод ExportAsFixedFormat. Примеры экспорта.
Метод ExportAsFixedFormat
Метод ExportAsFixedFormat сохраняет рабочую книгу Excel или выбранную группу листов этой книги в один PDF-файл. Чтобы экспортировать каждый лист в отдельный файл, необходимо применить метод ExportAsFixedFormat к каждому сохраняемому листу.
Синтаксис
Expression – это выражение, представляющее объект Workbook, Worksheet или Range.
Параметры
Единственный обязательный параметр – Type, остальные можно не указывать – в этом случае будут применены значения по умолчанию.
Параметр | Описание |
---|---|
Type | Задает формат файла для экспорта книги или листа: xlTypePDF(0) – сохранение в файл PDF; xlTypeXPS(1) – сохранение в файл XPS*. |
FileName | Задает имя файла. При указании полного пути, файл будет сохранен в указанную папку, при указании только имени – в папку по умолчанию (в Excel 2016 – «Документы»). Если имя не задано (по умолчанию), файл будет сохранен с именем экспортируемой книги. |
Quality | Задает качество сохраняемых электронных таблиц: xlQualityMinimum(1) – минимальное качество; xlQualityStandard(0) – стандартное качество (по умолчанию). |
IncludeDocProperties | Включение свойств документа Excel в PDF: True(1) – включить; False(0) – не включать; мне не удалось обнаружить разницу и значение по умолчанию. |
IgnorePrintAreas | Указывает VBA, следует ли игнорировать области печати, заданные на листах файла Excel: True(1) – игнорировать области печати; False(0) – не игнорировать области печати (по умолчанию). |
From** | Задает номер листа книги Excel, с которого начинается экспорт. По умолчанию сохранение в PDF начинается с первого листа книги. |
To** | Задает номер листа книги Excel, на котором заканчивается экспорт. По умолчанию сохранение в PDF заканчивается на последнем листе книги. |
OpenAfterPublish | Указывает VBA на необходимость открыть созданный файл PDF средством просмотра: True(1) – открыть файл PDF для просмотра; False(0) – не открывать файл PDF для просмотра (по умолчанию). |
FixedFormatExtClassPtr | Указатель на класс FixedFormatExt (игнорируем этот параметр). |
* XPS – это редко использующийся фиксированный формат файлов, разработанный Microsoft, который похож на PDF, но основан на языке XML.
** Применимо только к книге (Workbook.ExportAsFixedFormat), при экспорте листа (Worksheet.ExportAsFixedFormat) указание параметров From и/или To приведет к ошибке.
Примеры экспорта в PDF
Сохранение в PDF книги Excel
Экспорт всей книги
Если вы указываете путь к файлу, он должен существовать, иначе VBA сохранит файл с именем и в папку по умолчанию («ИмяКниги.pdf» в папку «Документы»).
Экспорт части книги
Этот способ позволяет сохранить в PDF группу листов, расположенных подряд:
Источник
Convert Excel to PDF Using Python
Python is a high-level, general-purpose, and very popular programming language. Python programming language (latest Python 3) is being used in web development, Machine Learning applications, along with all cutting-edge technology in Software Industry.
In this article, we will learn how to convert an Excel File to PDF File Using Python
Here we will use the win32com module for file conversion.
What is win32com?
Python extensions for Microsoft Windows Provide access to much of the Win32 API, the ability to create and use COM objects, and the Pythonwin environment.
Approach:
- First, we will create a COM Object Using Dispatch() method.
- Then we will read the Excel file pass “Excel.Application” inside the Dispatch method
- Pass Excel file path
- Then we will convert it into PDF using the ExportAsFixedFormat() method
ExportAsFixedFormat():- The ExportAsFixedFormat method is used to publish a workbook in either PDF or XPS format.
ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To,
Input:
EXCEL FILE
Below is the Implementation:
Источник
How to save Excel as PDF with VBA (10 examples)
Since Excel 2010, it has been possible to save Excel as PDF. The PDF format was then and continues to be, one of the most common file formats for distributing documents.
The code examples below provide the VBA macros to automate the creation of PDFs from Excel using the ExportAsFixedFormat method. This means you do not require a PDF printer installed, as Excel can print directly to a PDF document.
The example codes can be used independently or as part of a larger automation process. For example, check out this post to see an example of how to loop through a list and print a PDF for each item: Create multiple PDFs based on a list
Rather than going from Excel to PDF, you might want to go the other way; from PDF to Excel. Check out these posts for possible solutions for that scenario:
Download the example file: Click the link below to download the example file used for this post:
Saving Excel workbooks, sheets, charts, and ranges as PDF
This section contains the base code to save Excel as PDF from different objects (workbooks, worksheets, ranges, and charts). From a VBA perspective, it is the ExportAsFilxedFormat method combined with the Type property set to xlTypePDF that creates a PDF.
Save active sheet as PDF
The following code saves the selected sheets as a single PDF.
Save active workbook as PDF
Use the following macro to save all the visible sheets from a workbook.
Save selection as PDF
Sometimes, we only want to save a small part of a worksheet to a PDF. The following code prints only the selected cells.
Save a range as PDF
The macro below saves a specified range as a PDF.
Save a chart as PDF
The VBA code below saves a specified chart as a PDF.
Rather than naming a specific chart, the macro could run based on the active chart. Change this:
Adapting the code to your scenario
To adapt the code examples to your specific needs, you should adjust certain lines of code.
Change the save location
To save the file in the correct location, change this list of code:
If you would prefer the save location to be included in a cell, change the code to reference the sheet and cell containing the file path.
Change the worksheet
In this line of code, change the text “Sheet1” to the sheet name in your workbook.
Change the range
The following line of codes references the range to be printed to PDF.
Change the chart
To print a chart to PDF, change the chart’s name in the following line of code.
If you are unsure of the chart name, it is shown in the Name box when the chart is selected.
Notes for saving PDF documents
While the Filename property is optional, it is important to know where the file is saved.
- If the Filename property is not provided, the PDF saves in your default folder location using the Excel workbook’s name with the .pdf file extension.
- Where a file name is provided, but not a file path, the document saves in your default folder location with the name provided.
- When the .pdf file extension is not provided, the suffix is added automatically.
- If a PDF exists in the specified save location, the existing file is overwritten. Therefore, it may be necessary to include file handling procedures to prevent overwriting existing documents and handling errors.
- To save as an XPS document format, change xlTypePDF for xlTypeXPS.
Selecting specific worksheets before saving as PDF
If more than one worksheet is active, the PDF created includes all the active sheets. The following code selects multiple worksheets from an array before saving the PDF.
In the code above, an array is used to select the specific sheets. Alternatively, the Split array function with a text string could provide a more dynamic solution. This method is covered here: VBA Arrays.
Looping and saving as separate PDFs
To save multiple PDFs quickly, we can use VBA to loop through sheets or charts and save each individually.
Loop through sheets
The following macro loops through each worksheet in the active workbook and saves each as its own PDF. Each PDF is saved in the same folder as the workbook, where each PDF’s name is based on the worksheet’s name.
Loop through selected sheets
The following macro loops through only the selected worksheets in the active workbook and saves each as its own PDF.
Loop through charts
The following code loops through each chart on the active sheet and saves each as a separate PDF.
Other PDF print options
When using ExportAsFixedFormat, there are other optional settings available:
VBA Save to PDF Example using all the options
The code below demonstrates how to use all the options within a single macro. These options can be flexed to meet your requirements.
Other fixed formats available (xlTypeXPS)
The Type property can also create XPS documents when it is set to xlTypeXPS rather than xlTypePDF. XPS is Microsoft’s fixed file format; it is similar to PDF but based on the XML language. It is rarely used in the real world but is an option if required.
Conclusion
Learning how to save Excel as PDF is a good time investment. Each of these code snippets on its own is useful. However, the code examples above can be used in other automation to create even more time-saving.
About the author
Hey, I’m Mark, and I run Excel Off The Grid.
My parents tell me that at the age of 7 I declared I was going to become a qualified accountant. I was either psychic or had no imagination, as that is exactly what happened. However, it wasn’t until I was 35 that my journey really began.
In 2015, I started a new job, for which I was regularly working after 10pm. As a result, I rarely saw my children during the week. So, I started searching for the secrets to automating Excel. I discovered that by building a small number of simple tools, I could combine them together in different ways to automate nearly all my regular tasks. This meant I could work less hours (and I got pay raises!). Today, I teach these techniques to other professionals in our training program so they too can spend less time at work (and more time with their children and doing the things they love).
Do you need help adapting this post to your needs?
I’m guessing the examples in this post don’t exactly match your situation. We all use Excel differently, so it’s impossible to write a post that will meet everybody’s needs. By taking the time to understand the techniques and principles in this post (and elsewhere on this site), you should be able to adapt it to your needs.
But, if you’re still struggling you should:
- Read other blogs, or watch YouTube videos on the same topic. You will benefit much more by discovering your own solutions.
- Ask the ‘Excel Ninja’ in your office. It’s amazing what things other people know.
- Ask a question in a forum like Mr Excel, or the Microsoft Answers Community. Remember, the people on these forums are generally giving their time for free. So take care to craft your question, make sure it’s clear and concise. List all the things you’ve tried, and provide screenshots, code segments and example workbooks.
- Use Excel Rescue, who are my consultancy partner. They help by providing solutions to smaller Excel problems.
What next?
Don’t go yet, there is plenty more to learn on Excel Off The Grid. Check out the latest posts:
Источник
How can I convert Excel documents (files) to PDF in an automated fashion?
I am trying to adapt the solution found here to Excel. So far I have this:
var fso = new ActiveXObject("Scripting.FileSystemObject");
var docPath = WScript.Arguments(0);
docPath = fso.GetAbsolutePathName(docPath);
var pdfPath = docPath.replace(/.xls[^.]*$/, ".pdf");
var objExcel = null;
try
{
WScript.Echo("Saving '" + docPath + "' as '" + pdfPath + "'...");
objExcel = new ActiveXObject("Excel.Application");
objExcel.Visible = false;
var objExcel = objExcel.Workbooks.Open(docPath);
var wdFormatPdf = 17;
objExcel.SaveAs(pdfPath, wdFormatPdf);
objExcel.Close();
WScript.Echo("Done.");
}
finally
{
if (objExcel != null)
{
objExcel.Quit();
}
}
I get this output:
Saving 'somefile.xlsx' as 'somefile.pdf'...
Done.
..SaveXLSXAsPDF.js(27, 9) (null): The object invoked has disconnected from its clients.
A PDF file is created but it is invalid and won’t open in a reader. I’m thinking that perhaps format 17 isn’t the right one for Excel. Does anyone know the right number or how to get this working?
Edit: I found mention of the correct number here (57) but now I get this error:
r:WebRomanSaveXLSXAsPDF.js(27, 13) Microsoft JScript runtime error: Class doesn't support Automation
asked Mar 27, 2013 at 22:55
0
You’re clobbering objExcel on line 15:
var objExcel = objExcel.Workbooks.Open(docPath);
Those lines of code need to use a different variable, e.g.:
var objWorkbook = objExcel.Workbooks.Open(docPath);
var wdFormatPdf = 57;
objWorkbook.SaveAs(pdfPath, wdFormatPdf);
objWorkbook.Close();
answered Mar 27, 2013 at 23:15
ernieernie
6,33822 silver badges28 bronze badges
1
Try to use .ExportAsFixedFormat
property instead of .SaveAs
. First one is suitable for creating PDF files in Excel but not SaveAs which doesn’t support PDF format.
I guess you would need something like this:
objExcel.ExportAsFixedFormat(0, pdfPath)
answered Mar 27, 2013 at 23:17
Kazimierz JaworKazimierz Jawor
18.8k7 gold badges35 silver badges55 bronze badges
3
Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article
Python is a high-level, general-purpose, and very popular programming language. Python programming language (latest Python 3) is being used in web development, Machine Learning applications, along with all cutting-edge technology in Software Industry.
In this article, we will learn how to convert an Excel File to PDF File Using Python
Here we will use the win32com module for file conversion.
What is win32com?
Python extensions for Microsoft Windows Provide access to much of the Win32 API, the ability to create and use COM objects, and the Pythonwin environment.
pip install pywin32
Approach:
- First, we will create a COM Object Using Dispatch() method.
- Then we will read the Excel file pass “Excel.Application” inside the Dispatch method
- Pass Excel file path
- Then we will convert it into PDF using the ExportAsFixedFormat() method
ExportAsFixedFormat():- The ExportAsFixedFormat method is used to publish a workbook in either PDF or XPS format.
Syntax:
ExportAsFixedFormat (Type, FileName, Quality, IncludeDocProperties, IgnorePrintAreas, From, To,
OpenAfterPublish, FixedFormatExtClassPtr)
Excel File click here
Input:
EXCEL FILE
Below is the Implementation:
Python3
from
win32com
import
client
excel
=
client.Dispatch(
"Excel.Application"
)
sheets
=
excel.Workbooks.
Open
(
'Excel File Path'
)
work_sheets
=
sheets.Worksheets[
0
]
work_sheets.ExportAsFixedFormat(
0
,
'PDF File Path'
)
Output:
PDF FILE
Like Article
Save Article