{"id":247,"date":"2024-04-11T08:26:46","date_gmt":"2024-04-11T08:26:46","guid":{"rendered":"https:\/\/vkrastev1blog.com\/?p=247"},"modified":"2024-04-11T08:26:46","modified_gmt":"2024-04-11T08:26:46","slug":"how-to-create-pdf-from-html-or-image-using-java-pdfbox-framework","status":"publish","type":"post","link":"https:\/\/vkrastev1blog.com\/2024\/04\/11\/how-to-create-pdf-from-html-or-image-using-java-pdfbox-framework\/","title":{"rendered":"\u041a\u0430\u043a\u043e \u043d\u0430\u043f\u0440\u0430\u0432\u0438\u0442\u0438 \u041f\u0414\u0424 \u043e\u0434 \u0425\u0422\u041c\u041b-\u0430 \u0438\u043b\u0438 \u0441\u043b\u0438\u043a\u0435 \u043a\u043e\u0440\u0438\u0441\u0442\u0435\u045b\u0438 \u0458\u0430\u0432\u0430 \u043f\u0434\u0444\u0431\u043e\u043a \u0444\u0440\u0430\u043c\u0435\u0432\u043e\u0440\u043a"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u0421\u043b\u0435\u0434\u0435\u045b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u043e\u0432\u0434\u0435:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>In pom.xml insert or get the jar files and add them to the java project if you don't use maven \n&lt;repositories&gt;\n  &lt;repository&gt;\n    &lt;id&gt;jitpack.io&lt;\/id&gt;\n    &lt;url&gt;https:\/\/jitpack.io&lt;\/url&gt;\n  &lt;\/repository&gt;\n&lt;\/repositories&gt;\n&lt;!-- https:\/\/mvnrepository.com\/artifact\/org.apache.pdfbox\/pdfbox --&gt;\n&lt;dependency&gt;\n    &lt;groupId&gt;org.apache.pdfbox&lt;\/groupId&gt;\n    &lt;artifactId&gt;pdfbox&lt;\/artifactId&gt;\n    &lt;version&gt;3.0.2&lt;\/version&gt;\n&lt;\/dependency&gt;\n&lt;!-- https:\/\/mvnrepository.com\/artifact\/com.github.hkirk\/java-html2image --&gt;\n&lt;dependency&gt;\n   &lt;groupId&gt;com.github.hkirk&lt;\/groupId&gt;\n   &lt;artifactId&gt;java-html2image&lt;\/artifactId&gt;\n   &lt;version&gt;0.9&lt;\/version&gt;\n&lt;\/dependency&gt;\n\nand Java code here \npublic static void main(String&#091;] args) {\n            String html = \"&lt;html lang=\\\"en\\\" xmlns=\\http:\/\/www.w3.org\/1999\/xhtml\\ style=\\\"cursor: default;\\\"&gt;\"\n                        + \"&lt;body id=\\\"body\\\" class=\\\"modal-open\\\" style=\\\"cursor: default; padding-right: 15px;\\\"&gt;\\r\\n\"\n                        + \"&lt;p&gt;\" + \"Hello World&lt;\/p&gt;\";\n                        + \"&lt;\/body&gt;\\r\\n\" + \"&lt;\/html&gt;\\r\\n\" + \"\\r\\n\" + \"\";\n            HtmlImageGenerator imageGenerator = new HtmlImageGenerator();\n            imageGenerator.loadHtml(html);\n            BufferedImage bimg = imageGenerator.getBufferedImage();\n            float width = bimg.getWidth();\n            float height = bimg.getHeight();\n            PDPage page = new PDPage(new PDRectangle(width, height));\n            PDDocument document = new PDDocument();\n            document.addPage(page);\n            try {\n                  PDImageXObject pdImage = LosslessFactory.createFromImage(document, bimg);\n\n                  try (PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.OVERWRITE, true,\n                              true)) {\n                        contentStream.drawImage(pdImage, 0, 0, width, height);\n                  }\n                  document.save(\"xx.pdf\");\n                  document.close();\n            } catch (IOException e) {\n                 \/\/\n            } catch (Exception e) {\n                  \/\/ \n            }\n      }<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0421\u043b\u0435\u0434\u0435\u045b\u0438 \u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0434\u0430 \u043e\u0432\u0434\u0435:<\/p>\n","protected":false},"author":65283547,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_hide_featured_image":false,"_jetpack_featured_image_duplicate_dismissed":0,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":false,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1017],"tags":[86835188,207604289],"class_list":["post-247","post","type-post","status-publish","format-standard","hentry","category-1017","tag-86835188","tag---2"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4CoHV-3Z","jetpack-related-posts":[],"jetpack_likes_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/users\/65283547"}],"replies":[{"embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/comments?post=247"}],"version-history":[{"count":7,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/247\/revisions"}],"predecessor-version":[{"id":254,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/posts\/247\/revisions\/254"}],"wp:attachment":[{"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/media?parent=247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/categories?post=247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vkrastev1blog.com\/wp-json\/wp\/v2\/tags?post=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}