Converting PowerPoint to PDF


Converting your PowerPoint deck to a PDF document is great way to share your presentation with others.

Your colleagues will be able to view your presentation on virtually any device—laptop, smartphone, tablet, e-reader—even if they don't have Microsoft Office. And your PDF will look the same (or nearly the same) on Windows and Apple computers, Android and iOS smartphones and tablets, and over the web.

This page contains:

If you have Microsoft Office

If you have a recent version Microsoft Office installed on your computer (Office 2007 or later), you can export your PowerPoint presentation to PDF from PowerPoint itself.

Save as PDF

To save your presentation as a PDF file, follow these steps:

  1. Open your presentation in PowerPoint.
  2. Open the “File” menu and select “Save As...”. This will launch the “Save As...” dialog.
  3. Within the “Save As...” dialog box, open the drop-down menu next to “Format” and select “PDF”.
  4. Now you may save the presentation as you normally would.

Note that if the “PDF” option does not appear, you may need to install Acrobat Reader (available for free from Adobe's web site) to enable Office’s PDF support.

On all Apple OSX computers (and some Windows computers, depending upon which software is installed) you can also “print to PDF”. This technique works for any (printable) file, not just PowerPoint decks.

  1. Open your presentation in PowerPoint.
  2. Open the “File” menu and select “Print...”. This will launch the system's “Print” dialog.
  3. Within the “Print” dialog, locate the “Print to PDF” or “Save as PDF” option and select it. (On OSX the button can be found in the lower-left corner of the “Print” dialog. On Windows computers, PDF may also be listed as a “printer” that you can select.)
  4. Now you may “print” the presentation as you normally would. You may be asked to choose a filename and location for the PDF file.

Convert PowerPoint to PDF Online


If you don't have Microsoft Office, you can use the form below to convert a PowerPoint file to PDF right now from your web browser.

Select the Microsoft PowerPoint presentation you'd like to convert to the PDF format. Then click the “Submit” button to generate and preview your converted document.

Choose an MS PowerPoint Document.

This form only demonstrates some of DocumentAlchemy's document conversion capabilities. See the full API for more information.

Instantly add Microsoft Office support to your application, even on mobile, without the hassle and expense of maintaining a dedicated conversion box.

Converting PowerPoint to PDF using the DocumentAlchemy API


Document Alchemy offers a RESTful web-service API for reading, writing, processing and transforming a variety of document formats, including PowerPoint and PDF. To convert a PowerPoint document into PDF you can use Document Alchemy’s /document/-/rendition/{format} endpoint.

Try it Now: a copy and paste example

The following curl command demonstrates how to use the DocumentAlchemy API to convert a PowerPoint document to a PDF document.

The API Key in the example is valid. (Temporary, but valid.) To run the example, replace “MySlideDeck.pptx” in the example with the name of the PowerPoint file you want to transform into a PDF document and then copy-and-paste to run the example from your command-line.

curl -X POST --form "document=@MySlideDeck.pptx" \
  -H "Authorization: da.key=EDs2UQEprGn9aD4vg6HCPhFvgQFDahQgRzzIfocJ" \ \
  -o MySlideDeck.pdf

The sections below describe the API methods for converting PowerPoint to PDF in more detail.

For information about other DocumentAlchemy API methods, and the ability to interactively invoke API methods directly from your web browser, see the full DocumentAlchemy API documentation.

POST   /api/v1/document/-/rendition/pdf

Render the uploaded file as a PDF document.

GET   /api/v1/document/{doc_id}/rendition/pdf

Render the stored file as a PDF document.

Implementation Notes

The /document/{doc_id}/rendition/pdf endpoint converts the specified file into a PDF document.

This method is a PDF-specific example of DocumentAlchemy’s /document/{doc_id}/rendition/{format} endpoint, which converts a file into an arbitrary format.

In the GET case, {doc_id} specifies the document identifier of a PowerPoint file previously added to the document store.

In the POST case, {doc_id} should be -, indicating that the PowerPoint file to be converted is included in the HTTP request body (in an attribute named document).

By default, this method will return the generated PDF document in the body of the HTTP response (with an appropriate “Content-Type” header).

When the store parameter is set to true, rather than returning the PDF document directly, it will be placed in the document store and a JSON document containing a document identifier will be returned instead. (As if the generated document was uploaded via the POST /document API method.)

An optional ttl (“time-to-live”) parameter specifies (in seconds) how long the document should be stored. When omitted, a duration of 3600 seconds (one hour) is used by default. The maximum ttl value is currently 86400 seconds (one day). ttl values greater than 86400 seconds will be capped to 86400.


API clients may authenticate to DocumentAlchemy in one of three ways, as described in the following table.

HTTP Request HeaderAuthorization: da.key={api-key}

The API Key may be passed in a custom “Authorization” header, as a name/value pair mapping da.key to the API Key.

For example:

Authorization: da.key=EDs2UQEprGn9aD4vg6HCPhFvgQFDahQgRzzIfocJ
HTTP Request HeaderAuthorization: Bearer {api-key}

The API Key may be passed in an “Authorization” header as if it were an OAuth2 “access token”.

For example:

Authorization: Bearer EDs2UQEprGn9aD4vg6HCPhFvgQFDahQgRzzIfocJ
Query String Parameterda.key={api-key}

For situations in which adding an HTTP request header is awkward or difficult, the API Key may be passed in a query string parameter named da.key.

For example:


Each of these mechanisms for providing your API Key are equivalent and only one needs to be used at a time.


documentIn the case of a POST request, the PowerPoint document to be converted to PDF.body parameter; required
*.ppt,*.pptx or*.ppsx file
doc_idIn the case of a GET request, the document ID of a previously stored PowerPoint document to be converted to PDF.path parameter; required
document identifier (case-sensitive alphanumeric string)
storeWhen true, rather than returning the generated PDF document, store the file in the Document Alchemy document store and return a JSON object containing the document identifier.query string parameter; optional
boolean; defaults to false
ttlWhen store is true, the number of seconds for which the generated document should be stored. Defaults to one hour (3600 seconds). Maximum allowed value is 86400 seconds (one day).query string parameter; optional
integer between 1 and 86400; defaults to 3600

Standard Responses


Success! PDF returned in response body.   Unless store is true, the generated PDF document is returned in the body of an HTTP 200 response.


Success! PDF added to file store.   When store is true, the generated PDF document is stored in the Document Alchemy document store and a JSON object describing the generated document is returned n the body of an HTTP 201 response.

The returned object will contain a document attribute, mapped to a RESTful representation of the stored PDF document. For example:

  "document": {
    "id": "c5gkfbrksok9ax",
    "href": ""

The attribute contains the unique identifier generated for this stored document.

The document.href attribute contains a URL that can be used (with proper authorization) to download the stored document.


Error Responses

When a DocumentAlchemy API method reports an error, it returns a JSON document that describes the problem in more detail.

For example, when a non-existent PowerPoint document is specified in a GET /api/v1/document/{doc_id}/rendition/pdf call, the DocumentAlchemy API might return an HTTP 404 response containing JSON document such as:

  "success": false,
  "status": 404,
  "message": "The resource you requested was not found.",
  "reason": "Document ID \"CRb5yYZS9WTLmOpiixeB\" not found or not accessible."

The following table summarizes several common categories of error response.


Missing or Invalid Parameters.   Returned when there is a problem with the contents or format of your request parameters.

The message or reason attributes in the response may provide more information about the specific issue.


Must Authenticate.   Returned when no valid authorization credentials were submitted with the request. See the “Authorization” section (above) for details on how to authenticate to the Document Alchemy API.


Not available under current plan.   The requested action is not available under the API client’s current Document Alchemy plan or when fulfilling the request would exceed some limit of the API client’s plan.

For the “convert PowerPoint to PDF” API methods, this response generally means the latter — for example, storing the generated PDF might exceed the API client’s allocated disk space.

The message or reason attributes in the response may provide more information about the specific issue.


Forbidden.   Returned when the given authorization credentials are valid, but the client is not authorized to take the requested action.

You are unlikely to encounter this response when converting PowerPoint documents to PDF using the DocumentAlchemy API. It is included here just for completeness.


Not Found.   Returned when the document specified by the doc_id parameter does not exist OR is not accessible to the current API client.

(Note that for security reasons we do not distinguish between “not found” and “not accessible”.)


API rate limit exceeded.   Returned when the API client or client IP is submitting too many requests in a short period of time.


API count limit exceeded.   Returned when the API client or client IP has exceeded the number of API calls allocated to the account.


Server error   Returned when an unanticipated error was encountered on the server while fulfilling the document conversion request.

Repeating the same request may address the problem.

The message, reason or error attributes in the response may provide more information about the specific issue.


Instantly add Microsoft Office support to your application, even on mobile, without the hassle and expense of maintaining a dedicated conversion box.

DocumentAlchemy is a RESTful web service API for converting, generating and processing “documents” in a variety of formats, including Microsoft Office, PDF, HTML, Markdown, OpenOffice, images (PNG/JPEG/GIF/WebP/TIFF) and data (XML/JSON/FDF).

To learn more about the DocumentAlchemy API, visit the interactive API reference or review some of the sample code (at GitHub).

For full access, sign up for DocumentAlchemy now. All you need is an email address — there is no commitment and no credit-card is required.

Copyright © 2018 DocumentAlchemy.