{"id":384815,"date":"2026-10-12T21:29:17","date_gmt":"2026-10-12T21:29:17","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/pdfgate-html-to-pdf\/"},"modified":"2026-10-12T21:28:49","modified_gmt":"2026-10-12T21:28:49","slug":"pdfgate","status":"publish","type":"plugin","link":"https:\/\/fa-af.wordpress.org\/plugins\/pdfgate\/","author":23584170,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"PDFGate \u2013 HTML to PDF","header_author":"PDFGate","header_description":"Add a \"Download as PDF\" button to posts and pages. PDFs are rendered by the PDFGate API with full CSS, fonts and image support.","assets_banners_color":"0f5dd3","last_updated":"2026-10-12 21:28:49","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/pdfgate.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":43,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"pdfgate","date":"2026-10-12 21:28:49","revision":3742529}},"upgrade_notice":{"1.0.0":"<p>Initial release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3742529,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3742529,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3742529,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3742529,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3742529,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"pdfgate\/download-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"pdfgate\/download-button","version":"1.0.0","title":"Download as PDF","category":"widgets","icon":"pdf","description":"A button that downloads the current post or page as a PDF rendered by PDFGate.","keywords":["pdf","download","print","pdfgate"],"textdomain":"pdfgate","usesContext":["postId"],"attributes":{"label":{"type":"string","default":""},"inline":{"type":"boolean","default":false}},"supports":{"html":false,"align":["left","center","right"],"spacing":{"margin":true}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/editor.css","style":"pdfgate"}},"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3742529,"resolution":"1","location":"assets","locale":"","width":1440,"height":900},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3742529,"resolution":"2","location":"assets","locale":"","width":1440,"height":900},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3742529,"resolution":"3","location":"assets","locale":"","width":1440,"height":900}},"screenshots":{"1":"The \"Download as PDF\" block in the editor.","2":"The settings screen.","3":"A generated PDF next to the original page."}},"plugin_section":[],"plugin_tags":[285742,1859,38117,1764,3153],"plugin_category":[50,59],"plugin_contributors":[286266],"plugin_business_model":[],"class_list":["post-384815","plugin","type-plugin","status-publish","hentry","plugin_tags-download-pdf","plugin_tags-export","plugin_tags-html-to-pdf","plugin_tags-pdf","plugin_tags-print","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-pdfgate","plugin_committers-pdfgate"],"banners":{"banner":"https:\/\/ps.w.org\/pdfgate\/assets\/banner-772x250.png?rev=3742529","banner_2x":"https:\/\/ps.w.org\/pdfgate\/assets\/banner-1544x500.png?rev=3742529","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/pdfgate\/assets\/icon.svg?rev=3742529","icon":"https:\/\/ps.w.org\/pdfgate\/assets\/icon.svg?rev=3742529","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/pdfgate\/assets\/screenshot-1.png?rev=3742529","caption":"The \"Download as PDF\" block in the editor."},{"src":"https:\/\/ps.w.org\/pdfgate\/assets\/screenshot-2.png?rev=3742529","caption":"The settings screen."},{"src":"https:\/\/ps.w.org\/pdfgate\/assets\/screenshot-3.png?rev=3742529","caption":"A generated PDF next to the original page."}],"raw_content":"<!--section=description-->\n<p>PDFGate turns any post, page or custom post type into a PDF with one click. The rendering happens on the PDFGate API using a headless Chromium engine, so what your visitors download matches what they see on screen: web fonts, CSS grid, background images, embedded charts and all.<\/p>\n\n<p><strong>Features<\/strong><\/p>\n\n<ul>\n<li>\"Download as PDF\" block for the block editor, with a custom label and alignment.<\/li>\n<li><code>[pdfgate_download]<\/code> shortcode for classic themes and page builders.<\/li>\n<li>Optionally add the button automatically below every post, page or custom post type.<\/li>\n<li>Two render modes: the public page as your theme shows it, or the post content alone with a clean print template.<\/li>\n<li>Page size, orientation, margins, print media emulation, background printing and image loading settings.<\/li>\n<li>Global header and footer HTML with page numbers, date, title and URL placeholders.<\/li>\n<li>Optional fillable form fields: HTML inputs on the page become interactive PDF fields.<\/li>\n<li>Generated PDFs are cached and reused until the post changes, so your API quota is spent once per edit, not once per visitor.<\/li>\n<li>Per-visitor rate limiting protects your quota from bots.<\/li>\n<li>API key stored encrypted. It can also be defined as the <code>PDFGATE_API_KEY<\/code> constant in <code>wp-config.php<\/code>.<\/li>\n<li>Filters for developers to change the request, the template, the filename and the button markup.<\/li>\n<\/ul>\n\n<p><strong>Requirements<\/strong><\/p>\n\n<p>A free PDFGate account and API key from <a href=\"https:\/\/pdfgate.com\">pdfgate.com<\/a>. The free plan includes a monthly allowance of PDF generations; paid plans increase it.<\/p>\n\n<h3>External service<\/h3>\n\n<p>This plugin sends content to the PDFGate API (https:\/\/api.pdfgate.com, or https:\/\/api-sandbox.pdfgate.com for test keys) to render PDFs. Nothing is sent until a visitor requests a PDF or an administrator runs the connection test.<\/p>\n\n<p>Depending on the render mode, the request contains either the public URL of the post or the rendered HTML of the post content, together with your API key and the site URL. PDFGate processes the request to produce the PDF and keeps a request log for billing and abuse prevention. Documents are only stored on PDFGate servers if storage is enabled in your PDFGate account settings.<\/p>\n\n<ul>\n<li><a href=\"https:\/\/pdfgate.com\/terms-of-use\">Terms of service<\/a><\/li>\n<li><a href=\"https:\/\/pdfgate.com\/privacy-policy\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Install and activate the plugin.<\/li>\n<li>Create an API key at https:\/\/dashboard.pdfgate.com\/settings\/api-keys.<\/li>\n<li>Go to Settings \u2192 PDFGate, paste the key and click \"Test connection\".<\/li>\n<li>Add the \"Download as PDF\" block to a post, use the <code>[pdfgate_download]<\/code> shortcode, or enable \"Add automatically\" for your post types.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20on%20a%20local%20or%20password-protected%20site%3F\"><h3>Does this work on a local or password-protected site?<\/h3><\/dt>\n<dd><p>The \"Public page URL\" render mode needs PDFGate to fetch your page, so the site must be reachable from the internet and the post must be public. Switch to \"Post content\" mode for local development, staging sites behind a login, or drafts.<\/p><\/dd>\n<dt id=\"how%20do%20i%20hide%20an%20element%20from%20the%20pdf%3F\"><h3>How do I hide an element from the PDF?<\/h3><\/dt>\n<dd><p>In URL mode, add the CSS class <code>pdfgate-hide<\/code> to any element, or target the <code>pdfgate-render<\/code> body class in your stylesheet. The download button itself is always hidden.<\/p><\/dd>\n<dt id=\"how%20many%20api%20requests%20does%20a%20download%20use%3F\"><h3>How many API requests does a download use?<\/h3><\/dt>\n<dd><p>One per post per edit. The generated file is cached in <code>wp-content\/uploads\/pdfgate<\/code> and served from there until the post is updated, the settings change, or a day passes. Visitors are also limited to ten fresh generations per minute. Developers can change both with the <code>pdfgate_cache_ttl<\/code> and <code>pdfgate_rate_limit<\/code> filters.<\/p><\/dd>\n<dt id=\"can%20i%20add%20a%20header%20or%20footer%2C%20or%20change%20any%20other%20option%3F\"><h3>Can I add a header or footer, or change any other option?<\/h3><\/dt>\n<dd><p>Yes. Use the <code>pdfgate_generate_payload<\/code> filter to set any option documented at https:\/\/pdfgate.com\/documentation\/generate-pdf, for example <code>header<\/code>, <code>footer<\/code>, <code>css<\/code> or <code>javascript<\/code>.<\/p><\/dd>\n<dt id=\"where%20is%20the%20api%20key%20stored%3F\"><h3>Where is the API key stored?<\/h3><\/dt>\n<dd><p>Encrypted in the WordPress options table, using a key derived from your site's authentication salts. You can instead define <code>PDFGATE_API_KEY<\/code> in <code>wp-config.php<\/code>, in which case the settings page becomes read-only for the key.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release: block, shortcode, automatic button, URL and content render modes, caching and rate limiting.<\/li>\n<\/ul>","raw_excerpt":"Add a \"Download as PDF\" button to any post or page. Rendered by a real browser engine, so your theme, fonts and images come out right.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/384815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=384815"}],"author":[{"embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pdfgate"}],"wp:attachment":[{"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=384815"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=384815"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=384815"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=384815"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=384815"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fa-af.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=384815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}