이것은 아마도 디자인이나 사용법에 관한 질문 일 것이지만 주요 문제는 Rails 2.3.4와 함께 Prawn 플러그인을 사용하고 결과 PDF 객체에 액세스하여 파일로 렌더링하는 것입니다.Prawn & Prawnto for Rails PDF 생성 사용하기
시나리오는 기본적으로;
- respond_to 블록 설정
- 텍스트를 렌더링하는 코드를 볼 수있는 컨트롤러는 PDF로 등 그래픽
같습니다 같은 : 고객 컨트롤러에서
def show
@customer = Customer.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @customer }
format.pdf { render :layout => false }
end
고객보기에서
pdf.text "Hello World"
pdf.text "Customer is #{@customer.name}"
PDF 파일이 생성 될 때 예상대로 /customers/1.pdf에 대한 응답으로 PDF 파일을 생성하므로 제대로 작동합니다.
다른 요구 사항 중 하나는 pdf를 파일로 렌더링하고 서버에 복사본을 저장하는 것입니다. 새우는 다음과 같은 방법을 제공합니다. pdf.render_file {path_tofile}
이제보기 코드에이 코드를 포함하면 물론 파일을 서버에 저장할 수 있습니다. 그러나 나는 컨트롤러와 관련하여 로직과 관련되어 있으므로이를 관리하고 싶습니다.
첫 번째 시도였다
def show
@customer = Customer.find(params[:id])
@pdf = Prawn::Document.new()
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @customer }
format.pdf { render :layout => false }
pdf.render_file {path_to_file}
end
고객보기
pdf.text "Hello World"
pdf.text "Customer is #{@customer.name}"
문제 에서 이러한 시도의 문제는 PDF 렌더링되지 않는 것입니다. Controller 인스턴스 변수가 Prawnto Plugin pdf
변수와 충돌하고있는 것 같습니다. 그러나 PDF 변수를 변경해도 작동하지 않았습니다. 제안 사항이 있으십니까?
제임스, 감사 :
또는, 새우 핵심 개발자들 중 또 다른 하나는 함께이 가이드를 걸었다. 두 기사 모두 다른 접근 방식에 대해 좋은 균형을 제공합니다. –