{"id":304,"date":"2021-09-06T14:02:07","date_gmt":"2021-09-06T11:02:07","guid":{"rendered":"https:\/\/is42-2018.susu.ru\/artyushkinana\/?p=304"},"modified":"2021-09-06T14:02:07","modified_gmt":"2021-09-06T11:02:07","slug":"rabota-s-pdf-fajlami","status":"publish","type":"post","link":"https:\/\/is42-2018.susu.ru\/artyushkinana\/2021\/09\/06\/rabota-s-pdf-fajlami\/","title":{"rendered":"\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 PDF \u0444\u0430\u0439\u043b\u0430\u043c\u0438"},"content":{"rendered":"<p>\u0414\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e pdf \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\n# from PyPDF2 import PdfFileReader, PdfFileWriter\r\npdf_document = \"D:\\\u041d\u0430\u0434\u044f\\\u041a\u043e\u0441\u0442\u0435\u0440\u0438\u043d\\\u041f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b\\source\\\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.pdf\"\r\npdf = PdfFileReader(pdf_document)\r\nfor page in range(pdf.getNumPages()):\r\npdf_writer = PdfFileWriter()\r\ncurrent_page = pdf.getPage(page)\r\npdf_writer.addPage(current_page)\r\noutputFilename = \"dist\/\u0424\u043e\u0440\u043c_\u0432\u043a\u043b_\u0438\u0441\u043a\u043b-page-{}.pdf\".format(page + 1)\r\nwith open(outputFilename, \"wb\") as out:\r\npdf_writer.write(out)\r\nprint(\"created\", outputFilename)\r\n<\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435<\/p>\n<p><img loading=\"lazy\" src=\"http:\/\/is42-2018.susu.ru\/batalovaryu\/wp-content\/uploads\/sites\/9\/2021\/06\/1-27.jpg.png\" alt=\"\" width=\"600\" height=\"266\" class=\"aligncenter size-full wp-image-890\" \/><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\n# import fitz\r\nfilename = \"D:\\\u041d\u0430\u0434\u044f\\\u041a\u043e\u0441\u0442\u0435\u0440\u0438\u043d\\\u041f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b\\source\\\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.pdf\"\r\nsearch_term = \"\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\"\r\npdf_document = fitz.open(filename)\r\nfor current_page in range(len(pdf_document)):\r\npage = pdf_document.loadPage(current_page)\r\nif page.searchFor(search_term):\r\nprint(\"%s \u043d\u0430\u0439\u0434\u0435\u043d\u043e \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 %i\" % (search_term, current_page+1))\r\n<\/pre>\n<p>\u041e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0438\u043c \u043f\u043e\u0438\u0441\u043a \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435 \u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.pdf \u0441\u043b\u043e\u0432\u0430 \u00ab\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e\u00bb.<br \/>\n\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0438\u0436\u0435.<br \/>\n<img loading=\"lazy\" src=\"http:\/\/is42-2018.susu.ru\/batalovaryu\/wp-content\/uploads\/sites\/9\/2021\/06\/1-.png\" alt=\"\" width=\"743\" height=\"247\" class=\"aligncenter size-full wp-image-891\" \/><\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e PyPDF2<br \/>\n\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432 pdf \u0444\u0430\u0439\u043b \u0432\u043e\u0434\u044f\u043d\u043e\u0439 \u0437\u043d\u0430\u043a \u00ab\u0427\u0435\u0440\u043d\u043e\u0432\u0438\u043a\u00bb. \u0422\u0435\u043a\u0441\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\n\r\n# \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 \u0432 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0439 PDF\r\n\r\nimport PyPDF2\r\n\r\ninput_file = \"D:\\\u041d\u0430\u0434\u044f\\\u041a\u043e\u0441\u0442\u0435\u0440\u0438\u043d\\\u041f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b\\source\\\u0417\u0430\u0434\u0430\u043d\u0438\u0435 12.3.pdf\"\r\noutput_file = \"dist\/\u0412\u043e\u0434\u044f\u043d\u043e\u0439_\u0437\u043d\u0430\u043a-page-drafted.pdf\"\r\nwatermark_file = \"source\/\u0427\u0435\u0440\u043d\u043e\u0432\u0438\u043a.pdf\"\r\n\r\nwith open(input_file, \"rb\") as filehandle_input:\r\n# \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430\r\npdf = PyPDF2.PdfFileReader(filehandle_input)\r\nwith open(watermark_file, \"rb\") as filehandle_watermark:\r\n# \u0447\u0438\u0442\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430\r\nwatermark = PyPDF2.PdfFileReader(filehandle_watermark)\r\n# \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e PDF\r\nfirst_page = pdf.getPage(0)\r\n# \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0432\u043e\u0434\u044f\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 PDF\r\nfirst_page_watermark = watermark.getPage(0)\r\n# \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u0434\u0432\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b\r\nfirst_page.mergePage(first_page_watermark)\r\n# \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442 \u0437\u0430\u043f\u0438\u0441\u0438 PDF \u0434\u043b\u044f \u0432\u044b\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430\r\npdf_writer = PyPDF2.PdfFileWriter()\r\n# \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443\r\npdf_writer.addPage(first_page)\r\nwith open(output_file, \"wb\") as filehandle_output:\r\n# \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0444\u0430\u0439\u043b \u0441 \u0432\u043e\u0434\u044f\u043d\u044b\u043c\u0438 \u0437\u043d\u0430\u043a\u0430\u043c\u0438 \u0432 \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b\r\npdf_writer.write(filehandle_output)\r\n<\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b<br \/>\n<img loading=\"lazy\" src=\"http:\/\/is42-2018.susu.ru\/batalovaryu\/wp-content\/uploads\/sites\/9\/2021\/06\/2.png\" alt=\"\" width=\"694\" height=\"270\" class=\"aligncenter size-full wp-image-892\" \/><\/p>\n<p>\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e pdfrw<br \/>\n\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 pdfrw. \u0422\u0435\u043a\u0441\u0442 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043d\u0438\u0436\u0435.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"python\">\r\n# \u0423\u0434\u0430\u043b\u0438\u0442\u0435 \u043f\u0435\u0440\u0432\u044b\u0435 \u0434\u0432\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b (\u0442\u0438\u0442\u0443\u043b\u044c\u043d\u044b\u0439 \u043b\u0438\u0441\u0442) \u0438\u0437 PDF\r\n\r\nfrom pdfrw import PdfReader, PdfWriter\r\n\r\ninput_file = \"D:\\\u041d\u0430\u0434\u044f\\\u041a\u043e\u0441\u0442\u0435\u0440\u0438\u043d\\\u041f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b\\source\\\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.pdf\"\r\noutput_file = \"dist\/\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435_\u0441\u0442\u0440\u0430\u043d\u0438\u0446-page-drafted.pdf\"\r\n\r\n# \u041e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0437\u0430\u043f\u0438\u0441\u0438\r\nreader_input = PdfReader(input_file)\r\nwriter_output = PdfWriter()\r\n\r\n# \u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u0434\u0438\u043d \u0437\u0430 \u0434\u0440\u0443\u0433\u0438\u043c\r\nfor current_page in range(len(reader_input.pages)):\r\nif current_page &gt; 1:\r\nwriter_output.addpage(reader_input.pages[current_page])\r\nprint(\"adding page %i\" % (current_page + 1))\r\n\r\n# \u0417\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0430 \u0434\u0438\u0441\u043a\r\nwriter_output.write(output_file)\r\n<\/pre>\n<p>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u2013 \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b\u0440\u0435\u0437\u0430\u043d\u043e 2 \u043f\u0435\u0440\u0432\u044b\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b.<\/p>\n<p><img loading=\"lazy\" src=\"http:\/\/is42-2018.susu.ru\/batalovaryu\/wp-content\/uploads\/sites\/9\/2021\/06\/2-1.png\" alt=\"\" width=\"822\" height=\"352\" class=\"aligncenter size-full wp-image-893\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u0414\u043b\u044f \u0440\u0430\u0437\u0431\u0438\u0435\u043d\u0438\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e pdf \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043e\u0439 # from PyPDF2 import PdfFileReader, PdfFileWriter pdf_document = \"D:\\\u041d\u0430\u0434\u044f\\\u041a\u043e\u0441\u0442\u0435\u0440\u0438\u043d\\\u041f\u043e\u0434\u0434\u043e\u043c\u0435\u043d\u044b\\source\\\u0424\u043e\u0440\u043c\u0443\u043b\u0430 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439 \u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0439.pdf\" pdf = PdfFileReader(pdf_document) for page in range(pdf.getNumPages()): pdf_writer = PdfFileWriter() current_page = pdf.getPage(page) pdf_writer.addPage(current_page) outputFilename = \"dist\/\u0424\u043e\u0440\u043c_\u0432\u043a\u043b_\u0438\u0441\u043a\u043b-page-{}.pdf\".format(page + 1) with open(outputFilename, \"wb\") as out: pdf_writer.write(out) print(\"created\", outputFilename) \u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435 # &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/is42-2018.susu.ru\/artyushkinana\/2021\/09\/06\/rabota-s-pdf-fajlami\/\" class=\"more-link\">\u0427\u0438\u0442\u0430\u0442\u044c \u0434\u0430\u043b\u0435\u0435<span class=\"screen-reader-text\"> \u00ab\u0420\u0430\u0431\u043e\u0442\u0430 \u0441 PDF \u0444\u0430\u0439\u043b\u0430\u043c\u0438\u00bb<\/span><\/a><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/posts\/304"}],"collection":[{"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/comments?post=304"}],"version-history":[{"count":2,"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/posts\/304\/revisions"}],"predecessor-version":[{"id":306,"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/posts\/304\/revisions\/306"}],"wp:attachment":[{"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/media?parent=304"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/categories?post=304"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/is42-2018.susu.ru\/artyushkinana\/wp-json\/wp\/v2\/tags?post=304"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}