[RUBY-ON-RAILS] 어떻게 루비와 PDF 기존에 편집 또는 쓰기에?
RUBY-ON-RAILS어떻게 루비와 PDF 기존에 편집 또는 쓰기에?
나는 복잡한 내용과 그 안에 여러 개의 빈 지역 / 구역으로 PDF 템플릿 파일의 몇 가지있다. 나는 그 빈 지역에 쓰기 텍스트 수 및 폴더에 생성 된 PDF 파일을 저장해야합니다.
나는 아주 집중적으로이 질문에 대한 답을 인터넷 검색,하지만 확실한 답을 찾지 못했습니다. 더 나은 솔루션 중 하나는 PDF :: 툴킷이지만, 기존의 PDF 문서로 교체 속성을 추가 할 수는 Adobe Acrobat의 구입을 요구한다.
PHP의 세계는 단순히 / PDF 파일 및 쓰기를 열고 기존 내용 위에 그것에 그릴 수 있습니다 FPDI 축복한다. 이이 라이브러리의 루비 포트이지만, 마지막은 2009 년 초에 일어난 것이 널리 사용 및 지원처럼 또한 해당 프로젝트가 보이지 않는 커밋합니다.
질문 :, 편집 작성하거나 기존의 PDF 파일에 그리기의 더 나은 루비 방법은 무엇입니까?
이 질문은 여기에 답변을하지 않는 것 같습니다. 이러한 질문과 관련,하지만 정말 동일하지 않습니다 :
해결법
-
==============================
1.당신은 확실히 당신이 사용자 정의 PDF 파일을 생성 할 수있는 새우 보석을 확인해야합니다. 당신은 실제로 당신의 새로운 새우 문서 템플릿으로 기존의 PDF를 처리하여 기존의 PDF 파일에 텍스트 쓰기에 새우를 사용할 수 있습니다.
당신은 확실히 당신이 사용자 정의 PDF 파일을 생성 할 수있는 새우 보석을 확인해야합니다. 당신은 실제로 당신의 새로운 새우 문서 템플릿으로 기존의 PDF를 처리하여 기존의 PDF 파일에 텍스트 쓰기에 새우를 사용할 수 있습니다.
예를 들면 :
filename = "#{Prawn::DATADIR}/pdfs/multipage_template.pdf" Prawn::Document.generate("full_template.pdf", :template => filename) do text "THis content is written on the first page of the template", :align => :center end
이는 기존의 PDF 파일의 첫 페이지에 텍스트를 작성합니다.
자세한 내용은 여기를 참조하십시오 : http://prawn.majesticseacreature.com/manual.pdf
-
==============================
2.새우 템플릿 기능을 제거했기 때문에 내가 찾은 가장 쉬운 방법은 다음과 같다 (이것은 버그가 가득했습니다)
새우 템플릿 기능을 제거했기 때문에 내가 찾은 가장 쉬운 방법은 다음과 같다 (이것은 버그가 가득했습니다)
거친 예 :
require 'prawn' require 'pdf/toolkit' template_filename = 'some/dir/Awesome-Graphics.pdf' prawn_filename = 'temp.pdf' output_filename = 'output.pdf' Prawn::Document.generate(prawn_filename) do # Generate whatever you want here. text_box "This is some new text!", :at => [100, 300] end PDF::Toolkit.pdftk(prawn_filename, "background", template_filename, "output", output_filename)
-
==============================
3.나는 PDF 파일을 생성하고 다음 하나에 두 개의 생성 된 PDF 파일을 결합 combine_pdf을 사용하는 새우를 권장합니다. 나는이처럼 사용하고는 잘 작동합니다.
나는 PDF 파일을 생성하고 다음 하나에 두 개의 생성 된 PDF 파일을 결합 combine_pdf을 사용하는 새우를 권장합니다. 나는이처럼 사용하고는 잘 작동합니다.
이 PDF 파일을 결합하는 방법에의합니다 (README)에서 짧은 예 :
company_logo = CombinePDF.load("company_logo.pdf").pages[0] pdf = CombinePDF.load "content_file.pdf" pdf.pages.each { |page| page << company_logo } # notice the << operator is on a page and not a PDF object. pdf.save "content_with_logo.pdf"
-
==============================
4.내가 생각할 수있는 최선은 PDF 파일을 기존 편집하는 것을 허용하지 않습니다, 레일 - 라텍스이지만 당신이 템플릿 *와 함께 동적으로 수정 및 PDF 형식으로 그들을 컴파일 할 수 .tex.erb을 (설정할 수 것 DVI와 다른 사람의 수).
내가 생각할 수있는 최선은 PDF 파일을 기존 편집하는 것을 허용하지 않습니다, 레일 - 라텍스이지만 당신이 템플릿 *와 함께 동적으로 수정 및 PDF 형식으로 그들을 컴파일 할 수 .tex.erb을 (설정할 수 것 DVI와 다른 사람의 수).
-
==============================
5.PDFLib 당신이 원하는 일을 할 것 같다 루비 바인딩을 가지고있다.
PDFLib 당신이 원하는 일을 할 것 같다 루비 바인딩을 가지고있다.
-
==============================
6.당신은 당신이 하나의 보석을 사용할 수 있습니다 보석의 조합을 사용할 필요가 없습니다!
당신은 당신이 하나의 보석을 사용할 수 있습니다 보석의 조합을 사용할 필요가 없습니다!
(내가 발견 한 있도록!) PDF의 작업은 정말 루비 / 레일에 도전
이것은 내가 레일에 PDF로 동적 텍스트를 추가 할 수 있었다 방법입니다.
당신의 보석 파일 보석 combine_pdf이 보석을 추가
다음은이 같은 코드를 사용할 수 있습니다 :
# get the record from the database to add dynamically to the pdf user = User.last # get the existing pdf pdf = CombinePDF.load "#{Rails.root}/public/pdf/existing_pdf.pdf" # create a textbox and add it to the existing pdf on page 2 pdf.pages[1].textbox "#{user.first_name} #{user.last_name}", height: 20, width: 70, y: 596, x: 72 # output the new pdf which now contains your dynamic data pdf.save "#{Rails.root}/public/pdf/output#{Time.now.to_s}.pdf"
현재 텍스트 상자 방법의 세부 사항을 찾을 수 있습니다 https://www.rubydoc.info/gems/combine_pdf/0.2.5/CombinePDF/Page_Methods#textbox-instance_method
새우 wicked_pdf의 pdfkit의 fillable_pdf : 나는 다른 보석의 숫자를 통해이 작업에 일 소요
그러나 이것은 2019 년의 같은 나를 위해 지금까지 가장 부드러운 솔루션이 있었다.
나는 그들이 모든 시험을 통과하고 난 PDF의과에 있었다 에러하지 않아도이 사람에게 많은 시간을 절약 희망!
-
==============================
7.내 연구에 따르면, 새우는 내가 찾은 자유와 최고의 보석 중 하나입니다. 템플릿 기능은 이후 버전에서 작동하지 않습니다. 내가 템플릿 작업을 찾을 수있는 최신 버전 1.0.0.rc2입니다 - 3 월 1 일 2013 템플릿과 함께 작동 이후 버전을 찾을 수 없습니다. 이보다 최신 버전을 사용하는 경우 그래서 염두에. 추가 정보를 원하시면 스레드 아래 확인하십시오.
내 연구에 따르면, 새우는 내가 찾은 자유와 최고의 보석 중 하나입니다. 템플릿 기능은 이후 버전에서 작동하지 않습니다. 내가 템플릿 작업을 찾을 수있는 최신 버전 1.0.0.rc2입니다 - 3 월 1 일 2013 템플릿과 함께 작동 이후 버전을 찾을 수 없습니다. 이보다 최신 버전을 사용하는 경우 그래서 염두에. 추가 정보를 원하시면 스레드 아래 확인하십시오.
https://groups.google.com/forum/#!searchin/prawn-ruby/prawn$20templates/prawn-ruby/RYGPImNcR0I/7mxtnrEDHeQJ
PDFtk는 PDF 조작 및 템플릿 작업에 다른 수있는 도구입니다. 그러나, 다음과 같은 점을 언급
자세한 내용은 아래 링크를 참조하시기 바랍니다 http://adamalbrecht.com/2014/01/31/pre-filling-pdf-form-templates-in-ruby-on-rails-with-pdftk/
from https://stackoverflow.com/questions/9185942/how-to-edit-or-write-on-existing-pdf-with-ruby by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] OS-X는 레일 : "빌드 보석 네이티브 확장에 실패" (0) | 2020.03.03 |
---|---|
[RUBY-ON-RAILS] 레일 : 어떻게 특정 시간대에 날짜 - 시간 문자열을 구문 분석 (0) | 2020.03.03 |
[RUBY-ON-RAILS] GIT에서 레일 dB / schema.rb 파일을 처리 할 수있는 권리 방법은 무엇입니까? (0) | 2020.03.03 |
[RUBY-ON-RAILS] 어디 유증 구현 "authenticate_user가!" 방법? (0) | 2020.03.03 |
[RUBY-ON-RAILS] 루비 레일에 - 같은 파일을로드 할 수 없습니다 - mysql2 / 2.2 / mysql2 (LoadError를) (0) | 2020.03.03 |