2014-05-13 2 views
0

안녕하세요 저는 JSPDF를 사용하여 수동으로 셀을 생성하여 PDF를 생성하고 있습니다.JSPDF의 셀에 가운데에 텍스트를 만드는 방법

세포의 높이를 지정해야하지만 텍스트의 크기가 더 커지면 세포를 덮습니다. 어떻게 피할 수 있습니까?

  var l = { 
        orientation: 'l', 
        unit: 'mm', 
        format: 'a4', 
        compress: true, 
        fontSize: 8, 
        lineHeight: 1, 
        autoSize: false, 
        printHeaders: true 
       }, pdf = new jsPDF(l, '', '', ''), i, j, margins = { 
        top: 30, 
        bottom: 10, 
        left: 10, 
        width: 25 
       }; 

       //initializing the cells 
       pdf.cellInitialize(); 

       var lines = pdf.splitTextToSize(' This is large icon to f', 12); 
       pdf.cell(margins.left, margins.top, 14, 8, lines, 0); 

       pdf.save('Te.pdf'); 

지금 내가 랩을 통해 여전히 세포를 세포의 높이 만 텍스트를 늘릴 수 있습니다

enter image description here

여기 내 코드입니다.

다음은 어떻게 생겼는지 보여줍니다.

enter image description here

누구든지 나를 도울 수 있습니다. 나는 JSPDF를 사용 중이다. https://github.com/MrRio/jsPDF

답변

1

JSPDF를 사용해야합니까?

pdfmake (http://pdfmake.org)에서 필요한 것을 쉽게 얻을 수 있습니다.

비록 철학이 약간 다르긴하지만 - pdfmake는 자동으로 레이아웃을 계산하는 선언적 라이브러리입니다.

, (경우에 현재 페이지에 남아있는 충분한 공간이 아니다) COL/행 스팬, 깨지지 않는 행에 대한 지원도 있습니다
var docDefinition = { 
    content: [ 
    { 
     table: { 
     // header rows are automatically repeated if the table spans over multiple pages 
     // you can declare how many rows should be treated as headers 
     headerRows: 1, 
     widths: [ '*', 'auto', 100, '*' ], 

     body: [ 
      [ 'First', 'Second', 'Third', 'The last one' ], 
      [ 'Value 1', 'Value 2', 'Value 3', 'Value 4' ], 
      [ { text: 'Bold value', bold: true }, 'Val 2', 'Val 3', 'Val 4' ] 
     ] 
     } 
    } 
    ] 
}; 

자동 크기, 고정 된 크기와 :

기본 테이블 정의는 다음과 같습니다 별 크기의 열.

당신은 내가 같은 문제로 고통 pdfmake playground

+0

pdfmake도 보았지만 문서를 제공하지 않으며 IE8 + – Moiz

+0

을 지원할 것이라고 지정하지 않습니다. 현재 대부분의 옵션은 [시작하기] (http://pdfmake.org/#/gettingstarted)에 설명되어 있습니다. ... IE8 - 그것에 대해 생각해야 할 것입니다.) – bartekp

+0

감사합니다. IE8이 가장 큰 문제입니다. – Moiz

0

에있는 테이블의 예를 확인할 수 있습니다.

그러나 jspdf.plugin.cell.js를 보면 실제로 텍스트를 둘러싸는 직사각형을 그립니다. 즉 셀 자체는 사각형입니다. 텍스트는 각각의 전지의 측면에서 나타난다 여기서 jsPDFAPI.cell() 함수의 내부

, this.text(txt, x + 3, y + h - 3);는 라인이 실제로 제어한다.

this.text(txt, x + 3, y + h/2 - 3);과 같은 작업을 수행하면 텍스트가 셀의 가운데에 배치됩니다.

희망이 도움이됩니다.

+0

도움을 주셔서 감사합니다. 나는 이미 JSPDF의 기본 라이브러리를 약간 변경하여이 문제를 이미 고쳤습니다. – Moiz

관련 문제