{"id":22076,"date":"2020-05-21T18:25:11","date_gmt":"2020-05-21T18:25:11","guid":{"rendered":"http:\/\/uploading_managing_and_delivering_pdfs"},"modified":"2025-10-10T15:12:33","modified_gmt":"2025-10-10T22:12:33","slug":"uploading_managing_and_delivering_pdfs","status":"publish","type":"post","link":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs","title":{"rendered":"Uploading, Managing, and Delivering PDFs in Cloudinary"},"content":{"rendered":"<div class=\"wp-block-cloudinary-markdown \"><p>The Portable Document Format (PDF) is a popular format developed by Adobe for delivering formatted text and images. A PDF file includes a complete description of all layout elements, including text, fonts, images and layers, ensuring that the file will look identical when opened on any device. The PDF format also has the big advantage of compressing high-quality files to a relatively small file size.<\/p>\n<p><a href=\"https:\/\/cloudinary.com\/platform\">Cloudinary<\/a> has built-in support for uploading, managing, converting, creating, analyzing, and delivering PDF files, as well as third-party add-ons for creating PDFs from Office documents, and extracting the text from PDFs. Also, Cloudinary allows you to manage your PDFs like any other image file, benefiting from easy and simple transformations, fast CDN delivery, and more.<\/p>\n<p>The following sections give a summary and example of each of the features available for working with PDfs as well as links to further information and details in the <a href=\"https:\/\/cloudinary.com\/documentation\/upload_images\">Cloudinary documentation<\/a>.<\/p>\n<h2>Uploading PDF Files<\/h2>\n<p>Uploading PDFs to your Cloudinary account is really simple and straightforward. You can upload a PDF file using any of the options available for <a href=\"https:\/\/cloudinary.com\/documentation\/upload_images\">uploading files<\/a> to your Cloudinary account. If you upload a PDF with multiple pages, the upload response will include a <code>pages<\/code> parameter indicating the number of pages within the file.<\/p>\n<p>For a seamless PDF conversion and management, make sure you have the necessary configurations in place:<\/p>\n<ol>\n<li>Log in to your Cloudinary account.<\/li>\n<li>In the Cloudinary console, navigate to the <strong>Settings<\/strong> section.<\/li>\n<li>Ensure the \u201cPDF\u201d option is enabled under the \u201cUpload\u201d tab to facilitate easier PDF uploads and conversions.<\/li>\n<\/ol>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;sample.pdf\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;sample.pdf\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;sample.pdf\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;sample.pdf\\&quot;);&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;sample.pdf\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;sample.pdf\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;sample.pdf\\&quot;, \\n  function(error, result) {console.log(result, error); });&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;sample.pdf\\&quot;, \\n  function(error, result) {console.log(result, error); });&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;sample.pdf\\&quot;, ObjectUtils.emptyMap());&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;sample.pdf\\&quot;, ObjectUtils.emptyMap());&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;var uploadParams = new ImageUploadParams(){\\n  File = new FileDescription(@\\&quot;sample.pdf\\&quot;)};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;,&quot;codeSnippet&quot;:&quot;var uploadParams = new ImageUploadParams(){\\n  File = new FileDescription(@\\&quot;sample.pdf\\&quot;)};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;let params = CLDUploadRequestParams()\\nvar mySig = MyFunction(params)  \\\/\\\/ your own function that returns a signature generated on your backend\\nparams.setSignature(CLDSignature(signature: mySig.signature, timestamp: mySig.timestamp))\\nlet request = cloudinary.createUploader().signedUpload(\\n  url: \\&quot;sample.pdf\\&quot;, params: params)&quot;,&quot;codeSnippet&quot;:&quot;let params = CLDUploadRequestParams()\\nvar mySig = MyFunction(params)  \\\/\\\/ your own function that returns a signature generated on your backend\\nparams.setSignature(CLDSignature(signature: mySig.signature, timestamp: mySig.timestamp))\\nlet request = cloudinary.createUploader().signedUpload(\\n  url: \\&quot;sample.pdf\\&quot;, params: params)&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\n<p>If you need to determine the number of pages in a PDF that has already been uploaded to your account, you can use the Admin API <a href=\"https:\/\/cloudinary.com\/documentation\/admin_api#get_the_details_of_a_single_resource\">resource<\/a> method and include the <code>pages<\/code> parameter set to \u2018true\u2019. For example:<\/p>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Api.resource(&#039;sample_pdf&#039;,\\n  :pages =&gt; true)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Api.resource(&#039;sample_pdf&#039;,\\n  :pages =&gt; true)&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;$api-&gt;resource(\\&quot;sample\\&quot;,\\n  array(\\n    \\&quot;pages\\&quot; =&gt; TRUE));&quot;,&quot;codeSnippet&quot;:&quot;$api-&gt;resource(\\&quot;sample\\&quot;,\\n  array(\\n    \\&quot;pages\\&quot; =&gt; TRUE));&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.api.resource(\\&quot;sample_pdf\\&quot;,\\n  pages = True)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.api.resource(\\&quot;sample_pdf\\&quot;,\\n  pages = True)&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.v2.api.resource(&#039;sample_pdf&#039;, \\n  { pages: true },\\n  function(error, result) {console.log(result, error); });&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.v2.api.resource(&#039;sample_pdf&#039;, \\n  { pages: true },\\n  function(error, result) {console.log(result, error); });&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;api.resource(\\&quot;sample_pdf\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;pages\\&quot;, true ));&quot;,&quot;codeSnippet&quot;:&quot;api.resource(\\&quot;sample_pdf\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;pages\\&quot;, true ));&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;var getResource = new GetResourceParams(\\&quot;sample_pdf\\&quot;){\\n  Pages = true};\\nvar info = cloudinary.GetResource(getResource);&quot;,&quot;codeSnippet&quot;:&quot;var getResource = new GetResourceParams(\\&quot;sample_pdf\\&quot;){\\n  Pages = true};\\nvar info = cloudinary.GetResource(getResource);&quot;},{&quot;sdkId&quot;:&quot;cli&quot;,&quot;framework&quot;:&quot;cli&quot;,&quot;language&quot;:&quot;cli&quot;,&quot;displayName&quot;:&quot;CLI&quot;,&quot;packageName&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cld admin resource sample_pdf pages=true&quot;,&quot;codeSnippet&quot;:&quot;cld admin resource sample_pdf pages=true&quot;},{&quot;sdkId&quot;:&quot;curl&quot;,&quot;framework&quot;:&quot;curl&quot;,&quot;language&quot;:&quot;curl&quot;,&quot;displayName&quot;:&quot;cURL&quot;,&quot;packageName&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;curl \\\\\\n  -d \\&quot;pages=1\\&quot; \\\\\\n  https:\\\/\\\/&lt;API_KEY&gt;:&lt;API_SECRET&gt;@api.cloudinary.com\\\/v1_1\\\/&lt;cloud_name&gt;\\\/resources\\\/image\\\/upload\\\/sample_pdf&quot;,&quot;codeSnippet&quot;:&quot;curl \\\\\\n  -d \\&quot;pages=1\\&quot; \\\\\\n  https:\\\/\\\/&lt;API_KEY&gt;:&lt;API_SECRET&gt;@api.cloudinary.com\\\/v1_1\\\/&lt;cloud_name&gt;\\\/resources\\\/image\\\/upload\\\/sample_pdf&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\n<p>This feature is available to all customers on their security page.<\/p>\n<h2>Delivering PDF Files<\/h2>\n<p>Cloudinary treats PDF files the same as any other image file. This is a great feature, as it means you can upload PDF files and then deliver them using a standard Cloudinary dynamic URL, for example:<\/p>\n<pre class=\"js-syntax-highlighted\"><code>https:\/\/res.cloudinary.com\/demo\/image\/upload\/example_pdf.pdf\n<\/code><\/pre>\n<div class='c-callout  c-callout--inline-title c-callout--info'><strong class='c-callout__title'>Important:<\/strong> <p>If you are on a Free plan and need to deliver files in these formats, you can enable <strong>Allow delivery of PDF and ZIP files<\/strong> in the Product environment <a href=\"https:\/\/console.cloudinary.com\/settings\/security\"><strong>Security<\/strong><\/a> settings. Additionally, these delivery limitations are removed when you upgrade to a <a href=\"https:\/\/cloudinary.com\/pricing\"><strong>paid plan<\/strong><\/a>.<\/p><\/div>\n<p>Delivering the PDF in a different image format is as simple as changing the file extension to the desired format. This will deliver the first page of the PDF by default, but you can use the <code>page<\/code> parameter (<code>pg<\/code> in URLs) to select a different page. You can also use any other <a href=\"https:\/\/cloudinary.com\/documentation\/image_transformations\">image transformation<\/a> to deliver the new file, bringing Cloudinary\u2019s advanced image transformation functionality to your PDFs.<\/p>\n<p>For example, cropping out a specific 300&#215;300 square from the second page, with rounded corners and a black background:<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;multi_page_pdf.png\\&quot;, {transformation: [ {page: 2}, {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;}, {radius: \\&quot;max\\&quot;}, {background: \\&quot;black\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;multi_page_pdf.png\\&quot;, {transformation: [\\n  {page: 2},\\n  {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;},\\n  {radius: \\&quot;max\\&quot;},\\n  {background: \\&quot;black\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;multi_page_pdf.png\\&quot; &gt; &lt;Transformation page=\\&quot;2\\&quot; \\\/&gt; &lt;Transformation width=\\&quot;300\\&quot; height=\\&quot;300\\&quot; gravity=\\&quot;north\\&quot; y=\\&quot;270\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt; &lt;Transformation radius=\\&quot;max\\&quot; \\\/&gt; &lt;Transformation background=\\&quot;black\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;multi_page_pdf.png\\&quot; &gt;\\n\\t&lt;Transformation page=\\&quot;2\\&quot; \\\/&gt;\\n\\t&lt;Transformation width=\\&quot;300\\&quot; height=\\&quot;300\\&quot; gravity=\\&quot;north\\&quot; y=\\&quot;270\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt;\\n\\t&lt;Transformation radius=\\&quot;max\\&quot; \\\/&gt;\\n\\t&lt;Transformation background=\\&quot;black\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;multi_page_pdf.png\\&quot; &gt; &lt;cld-transformation page=\\&quot;2\\&quot; \\\/&gt; &lt;cld-transformation width=\\&quot;300\\&quot; height=\\&quot;300\\&quot; gravity=\\&quot;north\\&quot; y=\\&quot;270\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt; &lt;cld-transformation radius=\\&quot;max\\&quot; \\\/&gt; &lt;cld-transformation background=\\&quot;black\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;multi_page_pdf.png\\&quot; &gt;\\n\\t&lt;cld-transformation page=\\&quot;2\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation width=\\&quot;300\\&quot; height=\\&quot;300\\&quot; gravity=\\&quot;north\\&quot; y=\\&quot;270\\&quot; crop=\\&quot;crop\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation radius=\\&quot;max\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation background=\\&quot;black\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;multi_page_pdf.png\\&quot; &gt; &lt;cl-transformation page=\\&quot;2\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation width=\\&quot;300\\&quot; height=\\&quot;300\\&quot; gravity=\\&quot;north\\&quot; y=\\&quot;270\\&quot; crop=\\&quot;crop\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation radius=\\&quot;max\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation background=\\&quot;black\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;multi_page_pdf.png\\&quot; &gt;\\n\\t&lt;cl-transformation page=\\&quot;2\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation width=\\&quot;300\\&quot; height=\\&quot;300\\&quot; gravity=\\&quot;north\\&quot; y=\\&quot;270\\&quot; crop=\\&quot;crop\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation radius=\\&quot;max\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation background=\\&quot;black\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;multi_page_pdf.png&#039;, {transformation: [ {page: 2}, {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;}, {radius: \\&quot;max\\&quot;}, {background: \\&quot;black\\&quot;} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;multi_page_pdf.png&#039;, {transformation: [\\n  {page: 2},\\n  {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;},\\n  {radius: \\&quot;max\\&quot;},\\n  {background: \\&quot;black\\&quot;}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;).image(transformation=[ {&#039;page&#039;: 2}, {&#039;width&#039;: 300, &#039;height&#039;: 300, &#039;gravity&#039;: \\&quot;north\\&quot;, &#039;y&#039;: 270, &#039;crop&#039;: \\&quot;crop\\&quot;}, {&#039;radius&#039;: \\&quot;max\\&quot;}, {&#039;background&#039;: \\&quot;black\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;).image(transformation=[\\n  {&#039;page&#039;: 2},\\n  {&#039;width&#039;: 300, &#039;height&#039;: 300, &#039;gravity&#039;: \\&quot;north\\&quot;, &#039;y&#039;: 270, &#039;crop&#039;: \\&quot;crop\\&quot;},\\n  {&#039;radius&#039;: \\&quot;max\\&quot;},\\n  {&#039;background&#039;: \\&quot;black\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;multi_page_pdf.png&#039;))\\n\\t-&gt;extract(Extract::getPage()-&gt;byNumber(2))\\n\\t-&gt;resize(Resize::crop()-&gt;width(300)\\n-&gt;height(300)\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::north()))\\n-&gt;y(270))\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;backgroundColor(Color::BLACK);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;multi_page_pdf.png&#039;))\\n\\t-&gt;extract(Extract::getPage()-&gt;byNumber(2))\\n\\t-&gt;resize(Resize::crop()-&gt;width(300)\\n-&gt;height(300)\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::north()))\\n-&gt;y(270))\\n\\t-&gt;roundCorners(RoundCorners::max())\\n\\t-&gt;backgroundColor(Color::BLACK);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;page\\&quot;=&gt;2), array(\\&quot;width\\&quot;=&gt;300, \\&quot;height\\&quot;=&gt;300, \\&quot;gravity\\&quot;=&gt;\\&quot;north\\&quot;, \\&quot;y\\&quot;=&gt;270, \\&quot;crop\\&quot;=&gt;\\&quot;crop\\&quot;), array(\\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;), array(\\&quot;background\\&quot;=&gt;\\&quot;black\\&quot;) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.png\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;page\\&quot;=&gt;2),\\n  array(\\&quot;width\\&quot;=&gt;300, \\&quot;height\\&quot;=&gt;300, \\&quot;gravity\\&quot;=&gt;\\&quot;north\\&quot;, \\&quot;y\\&quot;=&gt;270, \\&quot;crop\\&quot;=&gt;\\&quot;crop\\&quot;),\\n  array(\\&quot;radius\\&quot;=&gt;\\&quot;max\\&quot;),\\n  array(\\&quot;background\\&quot;=&gt;\\&quot;black\\&quot;)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().page(2).chain() .width(300).height(300).gravity(\\&quot;north\\&quot;).y(270).crop(\\&quot;crop\\&quot;).chain() .radius(\\&quot;max\\&quot;).chain() .background(\\&quot;black\\&quot;)).imageTag(\\&quot;multi_page_pdf.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .page(2).chain()\\n  .width(300).height(300).gravity(\\&quot;north\\&quot;).y(270).crop(\\&quot;crop\\&quot;).chain()\\n  .radius(\\&quot;max\\&quot;).chain()\\n  .background(\\&quot;black\\&quot;)).imageTag(\\&quot;multi_page_pdf.png\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.png\\&quot;, transformation: [ {page: 2}, {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;}, {radius: \\&quot;max\\&quot;}, {background: \\&quot;black\\&quot;} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.png\\&quot;, transformation: [\\n  {page: 2},\\n  {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;},\\n  {radius: \\&quot;max\\&quot;},\\n  {background: \\&quot;black\\&quot;}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Page(2).Chain() .Width(300).Height(300).Gravity(\\&quot;north\\&quot;).Y(270).Crop(\\&quot;crop\\&quot;).Chain() .Radius(\\&quot;max\\&quot;).Chain() .Background(\\&quot;black\\&quot;)).BuildImageTag(\\&quot;multi_page_pdf.png\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Page(2).Chain()\\n  .Width(300).Height(300).Gravity(\\&quot;north\\&quot;).Y(270).Crop(\\&quot;crop\\&quot;).Chain()\\n  .Radius(\\&quot;max\\&quot;).Chain()\\n  .Background(\\&quot;black\\&quot;)).BuildImageTag(\\&quot;multi_page_pdf.png\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.png&#039;).transformation(Transformation()\\n\\t.extract(Extract.getPage().byNumber(2))\\n\\t.resize(Resize.crop().width(300)\\n.height(300)\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.north()))\\n.y(270))\\n\\t.roundCorners(RoundCorners.max())\\n\\t.backgroundColor(Color.BLACK));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.png&#039;).transformation(Transformation()\\n\\t.extract(Extract.getPage().byNumber(2))\\n\\t.resize(Resize.crop().width(300)\\n.height(300)\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.north()))\\n.y(270))\\n\\t.roundCorners(RoundCorners.max())\\n\\t.backgroundColor(Color.BLACK));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setPage(2).chain() .setWidth(300).setHeight(300).setGravity(\\&quot;north\\&quot;).setY(270).setCrop(\\&quot;crop\\&quot;).chain() .setRadius(\\&quot;max\\&quot;).chain() .setBackground(\\&quot;black\\&quot;)).generate(\\&quot;multi_page_pdf.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setPage(2).chain()\\n  .setWidth(300).setHeight(300).setGravity(\\&quot;north\\&quot;).setY(270).setCrop(\\&quot;crop\\&quot;).chain()\\n  .setRadius(\\&quot;max\\&quot;).chain()\\n  .setBackground(\\&quot;black\\&quot;)).generate(\\&quot;multi_page_pdf.png\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().page(2).chain() .width(300).height(300).gravity(\\&quot;north\\&quot;).y(270).crop(\\&quot;crop\\&quot;).chain() .radius(\\&quot;max\\&quot;).chain() .background(\\&quot;black\\&quot;)).generate(\\&quot;multi_page_pdf.png\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .page(2).chain()\\n  .width(300).height(300).gravity(\\&quot;north\\&quot;).y(270).crop(\\&quot;crop\\&quot;).chain()\\n  .radius(\\&quot;max\\&quot;).chain()\\n  .background(\\&quot;black\\&quot;)).generate(\\&quot;multi_page_pdf.png\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;pg_2\\\/w_300,h_300,c_crop,g_north,y_270\\\/r_max\\\/b_black\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.png&#039;).transformation(Transformation()\\n\\t.addTransformation(\\&quot;pg_2\\\/w_300,h_300,c_crop,g_north,y_270\\\/r_max\\\/b_black\\&quot;));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;multi_page_pdf.png\\&quot;)\\n\\t extract(Extract.getPage() { byNumber(2) })\\n\\t resize(Resize.crop() { width(300)\\n height(300)\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.north()))\\n y(270) })\\n\\t roundCorners(RoundCorners.max())\\n\\t backgroundColor(Color.BLACK) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;multi_page_pdf.png\\&quot;)\\n\\t extract(Extract.getPage() { byNumber(2) })\\n\\t resize(Resize.crop() { width(300)\\n height(300)\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.north()))\\n y(270) })\\n\\t roundCorners(RoundCorners.max())\\n\\t backgroundColor(Color.BLACK) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;multi_page_pdf.png\\&quot;, {transformation: [ {page: 2}, {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;}, {radius: \\&quot;max\\&quot;}, {background: \\&quot;black\\&quot;} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;multi_page_pdf.png\\&quot;, {transformation: [\\n  {page: 2},\\n  {width: 300, height: 300, gravity: \\&quot;north\\&quot;, y: 270, crop: \\&quot;crop\\&quot;},\\n  {radius: \\&quot;max\\&quot;},\\n  {background: \\&quot;black\\&quot;}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.png\\&quot;)\\n  .extract(getPage().byNumber(2))\\n  .resize(\\n    crop()\\n      .width(300)\\n      .height(300)\\n      .gravity(compass(\\&quot;north\\&quot;))\\n      .y(270)\\n  )\\n  .roundCorners(max())\\n  .backgroundColor(\\&quot;black\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/pg_2\\\/w_300,h_300,c_crop,g_north,y_270\\\/r_max\\\/b_black\\\/multi_page_pdf.png&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;page&quot;:&quot;2&quot;},{&quot;width&quot;:&quot;300&quot;,&quot;height&quot;:&quot;300&quot;,&quot;crop_mode&quot;:&quot;crop&quot;,&quot;gravity&quot;:&quot;north&quot;,&quot;y&quot;:&quot;270&quot;},{&quot;radius&quot;:&quot;max&quot;},{&quot;background&quot;:&quot;black&quot;}],&quot;transformation_string&quot;:&quot;pg_2\\\/w_300,h_300,c_crop,g_north,y_270\\\/r_max\\\/b_black&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;multi_page_pdf.png&quot;,&quot;extension&quot;:&quot;png&quot;,&quot;format&quot;:&quot;png&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><a class=\"c-image-link\" href=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/pg_2\/w_300,h_300,c_crop,g_north,y_270\/r_max\/b_black\/multi_page_pdf.png\" target=\"_blank\"><img decoding=\"async\" src=\"https:\/\/res.cloudinary.com\/demo\/image\/upload\/pg_2\/w_300,h_300,c_crop,g_north,y_270\/r_max\/b_black\/multi_page_pdf.png\" alt=\"pdf as image + transformations\" loading=\"lazy\" class=\"c-transformed-asset\"  width=\"300\" height=\"300\"\/><\/a><\/p>\n<h2>Creating PDF Files<\/h2>\n<p>PDFs can also be a great way to organize your content and deliver a set of images in a single file. Cloudinary provides the <a href=\"https:\/\/cloudinary.com\/documentation\/image_upload_api_reference#multi_method\">multi<\/a> method for creating a PDF file from images in your Cloudinary account that all have the same tag. All the images are then merged into a single multi-page PDF, where each image is a separate page, and they are ordered alphanumerically by their public ID. If you want the images to be included in a specific order, make sure to rename them accordingly (e.g., 01img, 02img, etc). The multi method is also useful for creating animated images, so make sure to specify the <code>format<\/code> as <code>pdf<\/code>.<\/p>\n<p>For example, to create a PDF file from all images that have the tag \u201canimal\u201d, and limit all images to a size of 400&#215;600:<\/p>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Uploader.multi(\\&quot;animal\\&quot;, :\\n  format =&gt; \\&quot;pdf\\&quot;, :\\n  transformation =&gt; {\\n    :width =&gt; 400, \\n    :height =&gt; 6--,\\n    :crop =&gt; \\&quot;limit\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.multi(\\&quot;animal\\&quot;, :\\n  format =&gt; \\&quot;pdf\\&quot;, :\\n  transformation =&gt; {\\n    :width =&gt; 400, \\n    :height =&gt; 6--,\\n    :crop =&gt; \\&quot;limit\\&quot;})&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::multi(\\&quot;animal\\&quot;, \\n  array(\\n    \\&quot;format\\&quot;=&gt;\\&quot;pdf\\&quot;, \\n    \\&quot;transformation\\&quot;=&gt;array(\\n      \\&quot;width\\&quot;=&gt;400,\\n      \\&quot;height\\&quot;=&gt;600,\\n      \\&quot;crop\\&quot;=&gt;\\&quot;limit\\&quot;)));&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::multi(\\&quot;animal\\&quot;, \\n  array(\\n    \\&quot;format\\&quot;=&gt;\\&quot;pdf\\&quot;, \\n    \\&quot;transformation\\&quot;=&gt;array(\\n      \\&quot;width\\&quot;=&gt;400,\\n      \\&quot;height\\&quot;=&gt;600,\\n      \\&quot;crop\\&quot;=&gt;\\&quot;limit\\&quot;)));&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.multi(\\&quot;animal\\&quot;, \\n  format = \\&quot;pdf\\&quot;,   \\n  transformation={\\n    \\&quot;width\\&quot;: 400, \\n    \\&quot;Height\\&quot;: 600,\\n    \\&quot;crop\\&quot;: \\&quot;limit\\&quot;})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.multi(\\&quot;animal\\&quot;, \\n  format = \\&quot;pdf\\&quot;,   \\n  transformation={\\n    \\&quot;width\\&quot;: 400, \\n    \\&quot;Height\\&quot;: 600,\\n    \\&quot;crop\\&quot;: \\&quot;limit\\&quot;})&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.v2.uploader.multi(\\&quot;animal\\&quot;,\\n  { format: \\&quot;pdf\\&quot;,\\n    transformation: {\\n      width: 400,\\n      Height: 600\\n      crop: \\&quot;limit\\&quot;}}, \\n  function(error,result) {console.log(result, error) });&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.v2.uploader.multi(\\&quot;animal\\&quot;,\\n  { format: \\&quot;pdf\\&quot;,\\n    transformation: {\\n      width: 400,\\n      Height: 600\\n      crop: \\&quot;limit\\&quot;}}, \\n  function(error,result) {console.log(result, error) });&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader().multi(\\&quot;animal\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;format\\&quot;, \\&quot;pdf\\&quot;\\n    \\&quot;transformation\\&quot;, new Transformation()\\n       .width(400).height(600).crop(\\&quot;limit\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().multi(\\&quot;animal\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;format\\&quot;, \\&quot;pdf\\&quot;\\n    \\&quot;transformation\\&quot;, new Transformation()\\n       .width(400).height(600).crop(\\&quot;limit\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;var multiParams = new MultiParams(\\&quot;animal\\&quot;){\\n  Format = \\&quot;pdf\\&quot;, \\n  Transformation = new Transformation()\\n   .Width(400).Height(600).Crop(\\&quot;limit\\&quot;)};\\nvar multiResult = cloudinary.Multi(multiParams);&quot;,&quot;codeSnippet&quot;:&quot;var multiParams = new MultiParams(\\&quot;animal\\&quot;){\\n  Format = \\&quot;pdf\\&quot;, \\n  Transformation = new Transformation()\\n   .Width(400).Height(600).Crop(\\&quot;limit\\&quot;)};\\nvar multiResult = cloudinary.Multi(multiParams);&quot;},{&quot;sdkId&quot;:&quot;curl&quot;,&quot;framework&quot;:&quot;curl&quot;,&quot;language&quot;:&quot;curl&quot;,&quot;displayName&quot;:&quot;cURL&quot;,&quot;packageName&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;curl https:\\\/\\\/api.cloudinary.com\\\/v1_1\\\/demo\\\/image\\\/multi -X POST --data &#039;tag=animal&amp;format=pdf&amp;transformation=w_400,h_600,c_limit&amp;timestamp=173719931&amp;api_key=1252464226&amp;signature=a13282348f85a22868af&#039;&quot;,&quot;codeSnippet&quot;:&quot;curl https:\\\/\\\/api.cloudinary.com\\\/v1_1\\\/demo\\\/image\\\/multi -X POST --data &#039;tag=animal&amp;format=pdf&amp;transformation=w_400,h_600,c_limit&amp;timestamp=173719931&amp;api_key=1252464226&amp;signature=a13282348f85a22868af&#039;&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\n<h2>Creating PDFs From Office Documents<\/h2>\n<p>If you need a way to automatically convert your Office documents, spreadsheets and presentations to PDF documents, Cloudinary offers the <a href=\"https:\/\/cloudinary.com\/documentation\/aspose_document_conversion_addon\">Aspose\u2019s document conversion<\/a> add-on.<\/p>\n<p>You start by uploading the Office file to your Cloudinary account as a <code>raw<\/code> file and adding the <code>raw_convert<\/code> parameter with a value of \u2018aspose\u2019.<\/p>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;sample.docx\\&quot;,\\n  :public_id =&gt; \\&quot;sample_doc.docx\\&quot;,\\n  :resource_type =&gt; &#039;raw&#039;, \\n  :raw_convert =&gt; &#039;aspose&#039;)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;sample.docx\\&quot;,\\n  :public_id =&gt; \\&quot;sample_doc.docx\\&quot;,\\n  :resource_type =&gt; &#039;raw&#039;, \\n  :raw_convert =&gt; &#039;aspose&#039;)&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;sample.docx\\&quot;,\\n  array(\\n   \\&quot;public_id\\&quot; =&gt; \\&quot;sample_doc.docx\\&quot;,\\n   \\&quot;resource_type\\&quot; =&gt; \\&quot;raw\\&quot;,\\n   \\&quot;raw_convert\\&quot; =&gt; \\&quot;aspose\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;sample.docx\\&quot;,\\n  array(\\n   \\&quot;public_id\\&quot; =&gt; \\&quot;sample_doc.docx\\&quot;,\\n   \\&quot;resource_type\\&quot; =&gt; \\&quot;raw\\&quot;,\\n   \\&quot;raw_convert\\&quot; =&gt; \\&quot;aspose\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;sample.docx\\&quot;,\\n  public_id = \\&quot;sample_doc.docx\\&quot;,\\n  resource_type = \\&quot;raw\\&quot;,\\n  raw_convert = \\&quot;aspose\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;sample.docx\\&quot;,\\n  public_id = \\&quot;sample_doc.docx\\&quot;,\\n  resource_type = \\&quot;raw\\&quot;,\\n  raw_convert = \\&quot;aspose\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;sample.docx\\&quot;,\\n  { public_id: \\&quot;sample_doc.docx\\&quot;,\\n    resource_type: \\&quot;raw\\&quot;,\\n    raw_convert: \\&quot;aspose\\&quot; },\\n  function(error, result){console.log(result);});&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;sample.docx\\&quot;,\\n  { public_id: \\&quot;sample_doc.docx\\&quot;,\\n    resource_type: \\&quot;raw\\&quot;,\\n    raw_convert: \\&quot;aspose\\&quot; },\\n  function(error, result){console.log(result);});&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;sample.docx\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;public_id\\&quot;, \\&quot;sample_doc.docx\\&quot;,\\n    \\&quot;resource_type\\&quot;, \\&quot;raw\\&quot;,\\n    \\&quot;raw_convert\\&quot;, \\&quot;aspose\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;sample.docx\\&quot;, \\n  ObjectUtils.asMap(\\n    \\&quot;public_id\\&quot;, \\&quot;sample_doc.docx\\&quot;,\\n    \\&quot;resource_type\\&quot;, \\&quot;raw\\&quot;,\\n    \\&quot;raw_convert\\&quot;, \\&quot;aspose\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;var uploadParams = new RawUploadParams(){\\n  File = new FileDescription(@\\&quot;sample.docx\\&quot;),\\n  PublicId = \\&quot;sample_doc.docx\\&quot;,\\n  RawConvert = \\&quot;aspose\\&quot;};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;,&quot;codeSnippet&quot;:&quot;var uploadParams = new RawUploadParams(){\\n  File = new FileDescription(@\\&quot;sample.docx\\&quot;),\\n  PublicId = \\&quot;sample_doc.docx\\&quot;,\\n  RawConvert = \\&quot;aspose\\&quot;};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\n<p>Once the conversion has finished, a PDF with the same public ID is added to your Cloudinary account as type <code>image<\/code> (the original still exists as type <code>raw<\/code>). In the example above, a new image (PDF) is added called <code>sample_doc.docx<\/code>, and can be delivered and\/or transformed as any other PDF uploaded to your account.<\/p>\n<h2>Extract Text From a PDF<\/h2>\n<p>Analyzing the context of a PDF file can be useful in a number of scenarios. It may be as simple as knowing if the file has any text at all, finding out what the text contains and tagging the file appropriately, or even to redact or blur specific text in the file. Cloudinary provides the <a href=\"https:\/\/cloudinary.com\/documentation\/ocr_text_detection_and_extraction_addon\">OCR Text Detection and Extraction<\/a> add-on for extracting all the text from a PDF, and it includes a summary of the text, coordinates of the captured text, as well as every individual text element.\nTo request the detected text, add the <code>ocr<\/code> parameter with a value of <code>adv_ocr:document<\/code>.\nFor example, when using the upload method:<\/p>\n<cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;sample.pdf\\&quot;,  \\n  :ocr =&gt; \\&quot;adv_ocr\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;Cloudinary::Uploader.upload(\\&quot;sample.pdf\\&quot;,  \\n  :ocr =&gt; \\&quot;adv_ocr\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;rawCodeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;sample.pdf\\&quot;, \\n  array(\\&quot;ocr\\&quot; =&gt; \\&quot;adv_ocr\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;\\\\Cloudinary\\\\Uploader::upload(\\&quot;sample.pdf\\&quot;, \\n  array(\\&quot;ocr\\&quot; =&gt; \\&quot;adv_ocr\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;sample.pdf\\&quot;,\\n  ocr = \\&quot;adv_ocr\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader.upload(\\&quot;sample.pdf\\&quot;,\\n  ocr = \\&quot;adv_ocr\\&quot;)&quot;},{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;javascript&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;sample.pdf\\&quot;, \\n  { ocr: \\&quot;adv_ocr\\&quot; },\\n  function(error, result) {console.log(result); });&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.v2.uploader.upload(\\&quot;sample.pdf\\&quot;, \\n  { ocr: \\&quot;adv_ocr\\&quot; },\\n  function(error, result) {console.log(result); });&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;sample.pdf\\&quot;, \\n  ObjectUtils.asMap(\\&quot;ocr\\&quot;, \\&quot;adv_ocr\\&quot;));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.uploader().upload(\\&quot;sample.pdf\\&quot;, \\n  ObjectUtils.asMap(\\&quot;ocr\\&quot;, \\&quot;adv_ocr\\&quot;));&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;java&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;rawCodeSnippet&quot;:&quot;var uploadParams = new ImageUploadParams()\\n{\\n  File = new FileDescription(@\\&quot;sample.pdf\\&quot;),\\n  Ocr = \\&quot;adv_ocr\\&quot;\\n};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;,&quot;codeSnippet&quot;:&quot;var uploadParams = new ImageUploadParams()\\n{\\n  File = new FileDescription(@\\&quot;sample.pdf\\&quot;),\\n  Ocr = \\&quot;adv_ocr\\&quot;\\n};\\nvar uploadResult = cloudinary.Upload(uploadParams);&quot;}]\"\n      parsed-url=\"[]\"\n      with-url=\"false\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget>\n<h2>Rasterize a PDF<\/h2>\n<p>Rasterizing a PDF is useful if you still want to deliver a PDF file, but also want to resize the file, or maybe add an overlay. <a href=\"https:\/\/cloudinary.com\/glossary\/rasterization\">Rasterization<\/a> reduces the PDF to a single flat pixelated layer (as opposed to vector based multiple layers). Simply add the <code>rasterize<\/code> flag to the dynamic URL (<code>fl_rasterize<\/code>) and add any resizing or overlays as desired. The following example\nrasterizes a PDF, scales it down to a width of 800 pixels and adds the Cloudinary icon to the top right corner of each page:<\/p>\n<p><cld-code-widget\n      class=\" c-code-widget\"\n      snippets=\"[{&quot;sdkId&quot;:&quot;nodejs&quot;,&quot;framework&quot;:&quot;nodejs&quot;,&quot;language&quot;:&quot;nodejs&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(\\&quot;multi_page_pdf.pdf\\&quot;, {transformation: [ {flags: \\&quot;rasterize\\&quot;}, {width: 800, crop: \\&quot;scale\\&quot;}, {overlay: \\&quot;cloudinary_icon\\&quot;, gravity: \\&quot;north_east\\&quot;, width: 100} ]})&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(\\&quot;multi_page_pdf.pdf\\&quot;, {transformation: [\\n  {flags: \\&quot;rasterize\\&quot;},\\n  {width: 800, crop: \\&quot;scale\\&quot;},\\n  {overlay: \\&quot;cloudinary_icon\\&quot;, gravity: \\&quot;north_east\\&quot;, width: 100}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Node.js&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_2&quot;,&quot;framework&quot;:&quot;react_2&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;react&quot;,&quot;framework&quot;:&quot;react&quot;,&quot;language&quot;:&quot;react&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;multi_page_pdf.pdf\\&quot; &gt; &lt;Transformation flags=\\&quot;rasterize\\&quot; \\\/&gt; &lt;Transformation width=\\&quot;800\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;Transformation overlay=\\&quot;cloudinary_icon\\&quot; gravity=\\&quot;north_east\\&quot; width=\\&quot;100\\&quot; \\\/&gt; &lt;\\\/Image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;Image publicId=\\&quot;multi_page_pdf.pdf\\&quot; &gt;\\n\\t&lt;Transformation flags=\\&quot;rasterize\\&quot; \\\/&gt;\\n\\t&lt;Transformation width=\\&quot;800\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;Transformation overlay=\\&quot;cloudinary_icon\\&quot; gravity=\\&quot;north_east\\&quot; width=\\&quot;100\\&quot; \\\/&gt;\\n&lt;\\\/Image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React&quot;,&quot;packageName&quot;:&quot;cloudinary-react&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue_2&quot;,&quot;framework&quot;:&quot;vue_2&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/vue&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;vue&quot;,&quot;framework&quot;:&quot;vue&quot;,&quot;language&quot;:&quot;vue&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;multi_page_pdf.pdf\\&quot; &gt; &lt;cld-transformation flags=\\&quot;rasterize\\&quot; \\\/&gt; &lt;cld-transformation width=\\&quot;800\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt; &lt;cld-transformation :overlay=\\&quot;cloudinary_icon\\&quot; gravity=\\&quot;north_east\\&quot; width=\\&quot;100\\&quot; \\\/&gt; &lt;\\\/cld-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cld-image public-id=\\&quot;multi_page_pdf.pdf\\&quot; &gt;\\n\\t&lt;cld-transformation flags=\\&quot;rasterize\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation width=\\&quot;800\\&quot; crop=\\&quot;scale\\&quot; \\\/&gt;\\n\\t&lt;cld-transformation :overlay=\\&quot;cloudinary_icon\\&quot; gravity=\\&quot;north_east\\&quot; width=\\&quot;100\\&quot; \\\/&gt;\\n&lt;\\\/cld-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Vue.js&quot;,&quot;packageName&quot;:&quot;cloudinary-vue&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular_2&quot;,&quot;framework&quot;:&quot;angular_2&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/ng&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;angular&quot;,&quot;framework&quot;:&quot;angular&quot;,&quot;language&quot;:&quot;angular&quot;,&quot;rawCodeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;multi_page_pdf.pdf\\&quot; &gt; &lt;cl-transformation flags=\\&quot;rasterize\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation width=\\&quot;800\\&quot; crop=\\&quot;scale\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;cl-transformation overlay=\\&quot;cloudinary_icon\\&quot; gravity=\\&quot;north_east\\&quot; width=\\&quot;100\\&quot;&gt; &lt;\\\/cl-transformation&gt; &lt;\\\/cl-image&gt;&quot;,&quot;codeSnippet&quot;:&quot;&lt;cl-image public-id=\\&quot;multi_page_pdf.pdf\\&quot; &gt;\\n\\t&lt;cl-transformation flags=\\&quot;rasterize\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation width=\\&quot;800\\&quot; crop=\\&quot;scale\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n\\t&lt;cl-transformation overlay=\\&quot;cloudinary_icon\\&quot; gravity=\\&quot;north_east\\&quot; width=\\&quot;100\\&quot;&gt;\\n\\t&lt;\\\/cl-transformation&gt;\\n&lt;\\\/cl-image&gt;&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Angular&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/angular-5.x&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js_2&quot;,&quot;framework&quot;:&quot;js_2&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;@cloudinary\\\/url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;js&quot;,&quot;framework&quot;:&quot;js&quot;,&quot;language&quot;:&quot;js&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.imageTag(&#039;multi_page_pdf.pdf&#039;, {transformation: [ {flags: \\&quot;rasterize\\&quot;}, {width: 800, crop: \\&quot;scale\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;cloudinary_icon\\&quot;), gravity: \\&quot;north_east\\&quot;, width: 100} ]}).toHtml();&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.imageTag(&#039;multi_page_pdf.pdf&#039;, {transformation: [\\n  {flags: \\&quot;rasterize\\&quot;},\\n  {width: 800, crop: \\&quot;scale\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;cloudinary_icon\\&quot;), gravity: \\&quot;north_east\\&quot;, width: 100}\\n  ]}).toHtml();&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;JS&quot;,&quot;packageName&quot;:&quot;cloudinary-core&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;python&quot;,&quot;framework&quot;:&quot;python&quot;,&quot;language&quot;:&quot;python&quot;,&quot;rawCodeSnippet&quot;:&quot;CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;).image(transformation=[ {&#039;flags&#039;: \\&quot;rasterize\\&quot;}, {&#039;width&#039;: 800, &#039;crop&#039;: \\&quot;scale\\&quot;}, {&#039;overlay&#039;: \\&quot;cloudinary_icon\\&quot;, &#039;gravity&#039;: \\&quot;north_east\\&quot;, &#039;width&#039;: 100} ])&quot;,&quot;codeSnippet&quot;:&quot;CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;).image(transformation=[\\n  {&#039;flags&#039;: \\&quot;rasterize\\&quot;},\\n  {&#039;width&#039;: 800, &#039;crop&#039;: \\&quot;scale\\&quot;},\\n  {&#039;overlay&#039;: \\&quot;cloudinary_icon\\&quot;, &#039;gravity&#039;: \\&quot;north_east\\&quot;, &#039;width&#039;: 100}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Python&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;php_2&quot;,&quot;framework&quot;:&quot;php_2&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;(new ImageTag(&#039;multi_page_pdf.pdf&#039;))\\n\\t-&gt;addFlag(\\&quot;rasterize\\&quot;)\\n\\t-&gt;resize(Resize::scale()-&gt;width(800))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;cloudinary_icon\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(100)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northEast()))\\n\\t)\\n\\t);&quot;,&quot;codeSnippet&quot;:&quot;(new ImageTag(&#039;multi_page_pdf.pdf&#039;))\\n\\t-&gt;addFlag(\\&quot;rasterize\\&quot;)\\n\\t-&gt;resize(Resize::scale()-&gt;width(800))\\n\\t-&gt;overlay(Overlay::source(\\n\\tSource::image(\\&quot;cloudinary_icon\\&quot;)\\n\\t-&gt;transformation((new Transformation())\\n\\t-&gt;resize(Resize::scale()-&gt;width(100)))\\n\\t)\\n\\t-&gt;position((new Position())\\n\\t-&gt;gravity(\\n\\tGravity::compass(\\n\\tCompass::northEast()))\\n\\t)\\n\\t);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;php&quot;,&quot;framework&quot;:&quot;php&quot;,&quot;language&quot;:&quot;php&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.pdf\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array( array(\\&quot;flags\\&quot;=&gt;\\&quot;rasterize\\&quot;), array(\\&quot;width\\&quot;=&gt;800, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;), array(\\&quot;overlay\\&quot;=&gt;\\&quot;cloudinary_icon\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;north_east\\&quot;, \\&quot;width\\&quot;=&gt;100) )))&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.pdf\\&quot;, array(\\&quot;transformation\\&quot;=&gt;array(\\n  array(\\&quot;flags\\&quot;=&gt;\\&quot;rasterize\\&quot;),\\n  array(\\&quot;width\\&quot;=&gt;800, \\&quot;crop\\&quot;=&gt;\\&quot;scale\\&quot;),\\n  array(\\&quot;overlay\\&quot;=&gt;\\&quot;cloudinary_icon\\&quot;, \\&quot;gravity\\&quot;=&gt;\\&quot;north_east\\&quot;, \\&quot;width\\&quot;=&gt;100)\\n  )))&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;PHP&quot;,&quot;packageName&quot;:&quot;cloudinary_php&quot;,&quot;packageStatus&quot;:&quot;legacy&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;java&quot;,&quot;framework&quot;:&quot;java&quot;,&quot;language&quot;:&quot;java&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation().flags(\\&quot;rasterize\\&quot;).chain() .width(800).crop(\\&quot;scale\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;cloudinary_icon\\&quot;)).gravity(\\&quot;north_east\\&quot;).width(100)).imageTag(\\&quot;multi_page_pdf.pdf\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.url().transformation(new Transformation()\\n  .flags(\\&quot;rasterize\\&quot;).chain()\\n  .width(800).crop(\\&quot;scale\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;cloudinary_icon\\&quot;)).gravity(\\&quot;north_east\\&quot;).width(100)).imageTag(\\&quot;multi_page_pdf.pdf\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Java&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;ruby&quot;,&quot;framework&quot;:&quot;ruby&quot;,&quot;language&quot;:&quot;ruby&quot;,&quot;rawCodeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.pdf\\&quot;, transformation: [ {flags: \\&quot;rasterize\\&quot;}, {width: 800, crop: \\&quot;scale\\&quot;}, {overlay: \\&quot;cloudinary_icon\\&quot;, gravity: \\&quot;north_east\\&quot;, width: 100} ])&quot;,&quot;codeSnippet&quot;:&quot;cl_image_tag(\\&quot;multi_page_pdf.pdf\\&quot;, transformation: [\\n  {flags: \\&quot;rasterize\\&quot;},\\n  {width: 800, crop: \\&quot;scale\\&quot;},\\n  {overlay: \\&quot;cloudinary_icon\\&quot;, gravity: \\&quot;north_east\\&quot;, width: 100}\\n  ])&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Ruby&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;csharp&quot;,&quot;framework&quot;:&quot;csharp&quot;,&quot;language&quot;:&quot;csharp&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation().Flags(\\&quot;rasterize\\&quot;).Chain() .Width(800).Crop(\\&quot;scale\\&quot;).Chain() .Overlay(new Layer().PublicId(\\&quot;cloudinary_icon\\&quot;)).Gravity(\\&quot;north_east\\&quot;).Width(100)).BuildImageTag(\\&quot;multi_page_pdf.pdf\\&quot;)&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.Api.UrlImgUp.Transform(new Transformation()\\n  .Flags(\\&quot;rasterize\\&quot;).Chain()\\n  .Width(800).Crop(\\&quot;scale\\&quot;).Chain()\\n  .Overlay(new Layer().PublicId(\\&quot;cloudinary_icon\\&quot;)).Gravity(\\&quot;north_east\\&quot;).Width(100)).BuildImageTag(\\&quot;multi_page_pdf.pdf\\&quot;)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;.NET&quot;,&quot;packageName&quot;:&quot;CloudinaryDotNet&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;dart&quot;,&quot;framework&quot;:&quot;dart&quot;,&quot;language&quot;:&quot;dart&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.pdf&#039;).transformation(Transformation()\\n\\t.addFlag(\\&quot;rasterize\\&quot;)\\n\\t.resize(Resize.scale().width(800))\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;cloudinary_icon\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(100)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.pdf&#039;).transformation(Transformation()\\n\\t.addFlag(\\&quot;rasterize\\&quot;)\\n\\t.resize(Resize.scale().width(800))\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;cloudinary_icon\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(100)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t)\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Dart&quot;,&quot;packageName&quot;:&quot;cloudinary_dart&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;swift&quot;,&quot;framework&quot;:&quot;swift&quot;,&quot;language&quot;:&quot;swift&quot;,&quot;rawCodeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation().setFlags(\\&quot;rasterize\\&quot;).chain() .setWidth(800).setCrop(\\&quot;scale\\&quot;).chain() .setOverlay(\\&quot;cloudinary_icon\\&quot;).setGravity(\\&quot;north_east\\&quot;).setWidth(100)).generate(\\&quot;multi_page_pdf.pdf\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;codeSnippet&quot;:&quot;imageView.cldSetImage(cloudinary.createUrl().setTransformation(CLDTransformation()\\n  .setFlags(\\&quot;rasterize\\&quot;).chain()\\n  .setWidth(800).setCrop(\\&quot;scale\\&quot;).chain()\\n  .setOverlay(\\&quot;cloudinary_icon\\&quot;).setGravity(\\&quot;north_east\\&quot;).setWidth(100)).generate(\\&quot;multi_page_pdf.pdf\\&quot;)!, cloudinary: cloudinary)&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;iOS&quot;,&quot;packageName&quot;:&quot;cloudinary&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;5.x&quot;},{&quot;sdkId&quot;:&quot;android&quot;,&quot;framework&quot;:&quot;android&quot;,&quot;language&quot;:&quot;android&quot;,&quot;rawCodeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation().flags(\\&quot;rasterize\\&quot;).chain() .width(800).crop(\\&quot;scale\\&quot;).chain() .overlay(new Layer().publicId(\\&quot;cloudinary_icon\\&quot;)).gravity(\\&quot;north_east\\&quot;).width(100)).generate(\\&quot;multi_page_pdf.pdf\\&quot;);&quot;,&quot;codeSnippet&quot;:&quot;MediaManager.get().url().transformation(new Transformation()\\n  .flags(\\&quot;rasterize\\&quot;).chain()\\n  .width(800).crop(\\&quot;scale\\&quot;).chain()\\n  .overlay(new Layer().publicId(\\&quot;cloudinary_icon\\&quot;)).gravity(\\&quot;north_east\\&quot;).width(100)).generate(\\&quot;multi_page_pdf.pdf\\&quot;);&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Android&quot;,&quot;packageName&quot;:&quot;cloudinary-android&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;3.x&quot;},{&quot;sdkId&quot;:&quot;flutter&quot;,&quot;framework&quot;:&quot;flutter&quot;,&quot;language&quot;:&quot;flutter&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.pdf&#039;).transformation(Transformation()\\n\\t.addFlag(\\&quot;rasterize\\&quot;)\\n\\t.resize(Resize.scale().width(800))\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;cloudinary_icon\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(100)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t)\\n\\t));&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image(&#039;multi_page_pdf.pdf&#039;).transformation(Transformation()\\n\\t.addFlag(\\&quot;rasterize\\&quot;)\\n\\t.resize(Resize.scale().width(800))\\n\\t.overlay(Overlay.source(\\n\\tSource.image(\\&quot;cloudinary_icon\\&quot;)\\n\\t.transformation(new Transformation()\\n\\t.resize(Resize.scale().width(100)))\\n\\t)\\n\\t.position(Position()\\n\\t.gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t)\\n\\t));&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Flutter&quot;,&quot;packageName&quot;:&quot;cloudinary_flutter&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;kotlin&quot;,&quot;framework&quot;:&quot;kotlin&quot;,&quot;language&quot;:&quot;kotlin&quot;,&quot;rawCodeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;multi_page_pdf.pdf\\&quot;)\\n\\t addFlag(\\&quot;rasterize\\&quot;)\\n\\t resize(Resize.scale() { width(800) })\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;cloudinary_icon\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(100) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;codeSnippet&quot;:&quot;cloudinary.image {\\n\\tpublicId(\\&quot;multi_page_pdf.pdf\\&quot;)\\n\\t addFlag(\\&quot;rasterize\\&quot;)\\n\\t resize(Resize.scale() { width(800) })\\n\\t overlay(Overlay.source(\\n\\tSource.image(\\&quot;cloudinary_icon\\&quot;) {\\n\\t transformation(Transformation {\\n\\t resize(Resize.scale() { width(100) }) })\\n\\t }) {\\n\\t position(Position() {\\n\\t gravity(\\n\\tGravity.compass(\\n\\tCompass.northEast()))\\n\\t })\\n\\t }) \\n}.generate()&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;Kotlin&quot;,&quot;packageName&quot;:&quot;kotlin-url-gen&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;},{&quot;sdkId&quot;:&quot;jquery&quot;,&quot;framework&quot;:&quot;jquery&quot;,&quot;language&quot;:&quot;jquery&quot;,&quot;rawCodeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;multi_page_pdf.pdf\\&quot;, {transformation: [ {flags: \\&quot;rasterize\\&quot;}, {width: 800, crop: \\&quot;scale\\&quot;}, {overlay: new cloudinary.Layer().publicId(\\&quot;cloudinary_icon\\&quot;), gravity: \\&quot;north_east\\&quot;, width: 100} ]})&quot;,&quot;codeSnippet&quot;:&quot;$.cloudinary.image(\\&quot;multi_page_pdf.pdf\\&quot;, {transformation: [\\n  {flags: \\&quot;rasterize\\&quot;},\\n  {width: 800, crop: \\&quot;scale\\&quot;},\\n  {overlay: new cloudinary.Layer().publicId(\\&quot;cloudinary_icon\\&quot;), gravity: \\&quot;north_east\\&quot;, width: 100}\\n  ]})&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;jQuery&quot;,&quot;packageName&quot;:&quot;cloudinary-jquery&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;2.x&quot;},{&quot;sdkId&quot;:&quot;react_native&quot;,&quot;framework&quot;:&quot;react_native&quot;,&quot;language&quot;:&quot;react_native&quot;,&quot;rawCodeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;codeSnippet&quot;:&quot;new CloudinaryImage(\\&quot;multi_page_pdf.pdf\\&quot;)\\n  .addFlag(\\&quot;rasterize\\&quot;)\\n  .resize(scale().width(800))\\n  .overlay(\\n    source(\\n      image(\\&quot;cloudinary_icon\\&quot;).transformation(\\n        new Transformation().resize(scale().width(100))\\n      )\\n    ).position(new Position().gravity(compass(\\&quot;north_east\\&quot;)))\\n  );&quot;,&quot;status&quot;:0,&quot;statusText&quot;:&quot;Ok&quot;,&quot;displayName&quot;:&quot;React Native&quot;,&quot;packageName&quot;:&quot;cloudinary-react-native&quot;,&quot;packageStatus&quot;:&quot;&quot;,&quot;packageVersion&quot;:&quot;1.x&quot;}]\"\n      parsed-url=\"{&quot;url&quot;:&quot;https:\\\/\\\/res.cloudinary.com\\\/demo\\\/image\\\/upload\\\/fl_rasterize\\\/w_800\\\/l_cloudinary_icon,g_north_east,w_100\\\/multi_page_pdf.pdf&quot;,&quot;cloud_name&quot;:&quot;demo&quot;,&quot;host&quot;:&quot;res.cloudinary.com&quot;,&quot;type&quot;:&quot;upload&quot;,&quot;resource_type&quot;:&quot;image&quot;,&quot;transformation&quot;:[{&quot;flags&quot;:&quot;rasterize&quot;},{&quot;width&quot;:&quot;800&quot;},{&quot;overlay&quot;:&quot;cloudinary_icon&quot;,&quot;gravity&quot;:&quot;north_east&quot;,&quot;width&quot;:&quot;100&quot;}],&quot;transformation_string&quot;:&quot;fl_rasterize\\\/w_800\\\/l_cloudinary_icon,g_north_east,w_100&quot;,&quot;url_suffix&quot;:&quot;&quot;,&quot;version&quot;:&quot;&quot;,&quot;secure&quot;:true,&quot;public_id&quot;:&quot;multi_page_pdf.pdf&quot;,&quot;extension&quot;:&quot;pdf&quot;,&quot;format&quot;:&quot;pdf&quot;,&quot;format_code&quot;:true,&quot;url_code&quot;:false,&quot;signature&quot;:&quot;&quot;,&quot;private_cdn&quot;:false,&quot;result_asset_type&quot;:&quot;image&quot;}\"\n      with-url=\"true\"\n    >\n      <span class=\"u-visually-hidden\">Loading code examples<\/span>\n    <\/cld-code-widget><\/p>\n<h2>Summing Up<\/h2>\n<p>Cloudinary has some great features that make working with PDF files simple and easy, with multiple options for uploading PDFs to your account, extensive transformations available, fast CDN delivery, and multiple methods for managing and extracting useful information from your files.  And since it\u2019s a simple matter to convert PDF files to other image formats, they can also benefit from the multitude of transformations effects available to all images.\nMake sure to also check the Cloudinary <a href=\"https:\/\/cloudinary.com\/documentation\/paged_and_layered_media\">documentation<\/a> for more details, and if you don\u2019t have a Cloudinary account, make sure to <a href=\"https:\/\/cloudinary.com\/users\/register_free\">sign up for your free account now<\/a> and try it out.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":41,"featured_media":22666,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_cloudinary_featured_overwrite":false,"footnotes":""},"categories":[1],"tags":[119,165],"class_list":["post-22076","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-file-upload","tag-image-transformation"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.6 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Upload, Manage, and Deliver PDFs to Cloudinary<\/title>\n<meta name=\"description\" content=\"Cloudinary makes it easy to work with PDF documents! Quickly learn how to upload, manage, and deliver PDF files (and more) with Cloudinary.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Uploading, Managing, and Delivering PDFs in Cloudinary\" \/>\n<meta property=\"og:description\" content=\"Cloudinary makes it easy to work with PDF documents! Quickly learn how to upload, manage, and deliver PDF files (and more) with Cloudinary.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\" \/>\n<meta property=\"og:site_name\" content=\"Cloudinary Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-21T18:25:11+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-10T22:12:33+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA\" \/>\n\t<meta property=\"og:image:width\" content=\"1540\" \/>\n\t<meta property=\"og:image:height\" content=\"847\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"NewsArticle\",\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#article\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\"},\"author\":{\"name\":\"\",\"@id\":\"\"},\"headline\":\"Uploading, Managing, and Delivering PDFs in Cloudinary\",\"datePublished\":\"2020-05-21T18:25:11+00:00\",\"dateModified\":\"2025-10-10T22:12:33+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\"},\"wordCount\":7,\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA\",\"keywords\":[\"File-upload\",\"Image Transformation\"],\"inLanguage\":\"en-US\",\"copyrightYear\":\"2020\",\"copyrightHolder\":{\"@id\":\"https:\/\/cloudinary.com\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\",\"url\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\",\"name\":\"How to Upload, Manage, and Deliver PDFs to Cloudinary\",\"isPartOf\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage\"},\"thumbnailUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA\",\"datePublished\":\"2020-05-21T18:25:11+00:00\",\"dateModified\":\"2025-10-10T22:12:33+00:00\",\"description\":\"Cloudinary makes it easy to work with PDF documents! Quickly learn how to upload, manage, and deliver PDF files (and more) with Cloudinary.\",\"breadcrumb\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA\",\"width\":1540,\"height\":847},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/cloudinary.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Uploading, Managing, and Delivering PDFs in Cloudinary\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#website\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"name\":\"Cloudinary Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cloudinary.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#organization\",\"name\":\"Cloudinary Blog\",\"url\":\"https:\/\/cloudinary.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"contentUrl\":\"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA\",\"width\":312,\"height\":60,\"caption\":\"Cloudinary Blog\"},\"image\":{\"@id\":\"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Upload, Manage, and Deliver PDFs to Cloudinary","description":"Cloudinary makes it easy to work with PDF documents! Quickly learn how to upload, manage, and deliver PDF files (and more) with Cloudinary.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs","og_locale":"en_US","og_type":"article","og_title":"Uploading, Managing, and Delivering PDFs in Cloudinary","og_description":"Cloudinary makes it easy to work with PDF documents! Quickly learn how to upload, manage, and deliver PDF files (and more) with Cloudinary.","og_url":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs","og_site_name":"Cloudinary Blog","article_published_time":"2020-05-21T18:25:11+00:00","article_modified_time":"2025-10-10T22:12:33+00:00","og_image":[{"width":1540,"height":847,"url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA","type":"image\/png"}],"twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#article","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs"},"author":{"name":"","@id":""},"headline":"Uploading, Managing, and Delivering PDFs in Cloudinary","datePublished":"2020-05-21T18:25:11+00:00","dateModified":"2025-10-10T22:12:33+00:00","mainEntityOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs"},"wordCount":7,"publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA","keywords":["File-upload","Image Transformation"],"inLanguage":"en-US","copyrightYear":"2020","copyrightHolder":{"@id":"https:\/\/cloudinary.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs","url":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs","name":"How to Upload, Manage, and Deliver PDFs to Cloudinary","isPartOf":{"@id":"https:\/\/cloudinary.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage"},"thumbnailUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA","datePublished":"2020-05-21T18:25:11+00:00","dateModified":"2025-10-10T22:12:33+00:00","description":"Cloudinary makes it easy to work with PDF documents! Quickly learn how to upload, manage, and deliver PDF files (and more) with Cloudinary.","breadcrumb":{"@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#primaryimage","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA","width":1540,"height":847},{"@type":"BreadcrumbList","@id":"https:\/\/cloudinary.com\/blog\/uploading_managing_and_delivering_pdfs#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/cloudinary.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Uploading, Managing, and Delivering PDFs in Cloudinary"}]},{"@type":"WebSite","@id":"https:\/\/cloudinary.com\/blog\/#website","url":"https:\/\/cloudinary.com\/blog\/","name":"Cloudinary Blog","description":"","publisher":{"@id":"https:\/\/cloudinary.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cloudinary.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/cloudinary.com\/blog\/#organization","name":"Cloudinary Blog","url":"https:\/\/cloudinary.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","contentUrl":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1649718331\/Web_Assets\/blog\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877\/cloudinary_logo_for_white_bg_1937437aa7_19374666c7_193742f877.png?_i=AA","width":312,"height":60,"caption":"Cloudinary Blog"},"image":{"@id":"https:\/\/cloudinary.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":""}]}},"jetpack_featured_media_url":"https:\/\/res.cloudinary.com\/cloudinary-marketing\/images\/f_auto,q_auto\/v1645573972\/website-2021\/blog\/PDF-Conversions\/PDF-Conversions.png?_i=AA","_links":{"self":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/22076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/comments?post=22076"}],"version-history":[{"count":13,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/22076\/revisions"}],"predecessor-version":[{"id":38743,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/posts\/22076\/revisions\/38743"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media\/22666"}],"wp:attachment":[{"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/media?parent=22076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/categories?post=22076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cloudinary.com\/blog\/wp-json\/wp\/v2\/tags?post=22076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}