ã¯ããã«
ãç¾å¨ã®Webã·ã¹ãã ã«ããã¦å¸³ç¥¨ã®åºåãè¡ãå ´åãPDFå½¢å¼ãé¸æããããã¨ãä¸è¬çã«ãªã£ã¦ãã¾ãããã®çç±ã¨ãã¦ã¯ããã¼ã¿ãµã¤ãºãã³ã³ãã¯ãã«ãããã¨ãã§ãããæ å ±ã®æ¹ãããé²æ¢ã§ããããªã©ãæãããã¾ããä¸è¬ã¦ã¼ã¶ã«ãæ®åãã¦ãã¾ãã®ã§ãã·ã¹ãã éçºæã«é¡§å®¢ããPDFå½¢å¼ã§ã®æ å ±ã®åºåãæ±ãããããã¨ãå¤ãã®ã§ã¯ãªãã§ããããã
ããã®è¨äºã§ã¯ããiTextãã¨ããã©ã¤ãã©ãªãæ´»ç¨ãã¦ãPDFã®åºåãè¡ãæ¹æ³ã解説ãã¾ãã
対象èªè
ãJavaããã°ã©ãã³ã°ã§éçºãè¡ã£ãçµé¨ã®ããæ¹ãããã³ãJavaããã°ã©ãã³ã°ã«èå³ããæã¡ã®æ¹ã対象ã¨ãã¦ãã¾ãã
å¿ è¦ãªç°å¢
ããã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ãåä½ãããã«ã¯ã以ä¸ã®ã½ããã¦ã§ã¢ãæä½éå¿ è¦ã§ããç°å¢ã«ã¤ãã¦ã®è©³ç´°ãè¨å®æ¹æ³ã«ã¤ãã¦ã¯ããµã¼ããµã¤ãæè¡ã®å¦ã³è - WINGSã«ããããµã¼ããµã¤ãç°å¢æ§ç¯è¨å®ããåç §ãã¦ãã ããã
ããµã³ãã«ã¯ãå¿ è¦ãªjarãã¡ã¤ã«ãå«ãã¦warãã¡ã¤ã«å½¢å¼ã§æä¾ãã¦ãã¾ããè¨äºä¸é¨ãªã³ã¯ãããã¡ã¤ã«ãitext.warãããã¦ã³ãã¼ãããã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã«é ç½®ï¼ãã£ããã¤ï¼ãã¦ä¸ããï¼Tomcatã®å ´åã¯ããwebappsããã©ã«ãé ä¸ã«warãã¡ã¤ã«ãè¨å®ãã¦ãåèµ·åãã¦ä¸ããï¼ãã¢ããªã±ã¼ã·ã§ã³ãµã¼ãèµ·åå¾ã«ããhttp://localhost:8080/itextãã«ã¢ã¯ã»ã¹ããã¨ããµã³ãã«ãåä½ããããã¨ãã§ãã¾ãï¼ãã¹ãåã»ãã¼ãçªå·ã¯ãèªèº«ã®ç°å¢ã«åããã¦å¤æ´ãã¦ä¸ããï¼ã
iTextã¨ã¯
ãiTextã¯PDFãJavaã§æ±ãããã®ã©ã¤ãã©ãªã¨ãã¦ãªã¼ãã³ã½ã¼ã¹ã§éçºããã¦ãã¾ãã使ç¨ããéã¯ãMPLãLGPLãããããããã®ã©ã¤ã»ã³ã¹ãé¸æãããã¨ã¨ãªã£ã¦ãã¾ãã
ãã©ã¤ãã©ãªã¯jarãã¡ã¤ã«å½¢å¼ã§é å¸ããã¦ãã¾ããå©ç¨ããéã¯ãiTextã®ãµã¤ããããitext-1.3.jarãããã¦ã³ãã¼ããã¦ä¸ãããã¾ããæ¥æ¬èªã使ç¨ããéã¯ãå¥éæ¥æ¬èªãã©ã³ãç¨ã®ã©ã¤ãã©ãªãå¿ è¦ã¨ãªãã¾ãã®ã§ãã¡ãã®ãµã¤ããããiTextAsian.jarãããã¦ã³ãã¼ããã¦ä¸ããã
ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ¦è¦
ããµã³ãã«ã¨ãã¦ãiTextã使ç¨ãã¦åçã«PDFãä½æããWebã¢ããªã±ã¼ã·ã§ã³ãç´¹ä»ãã¾ãã
ãå¦çã®æµãã¯ã以ä¸ã®ããã«ãªãã¾ãã
- ãã©ã¦ã¶ããååãå ¥åãã¦éä¿¡ã
- ãªã¯ã¨ã¹ããåãåã£ããµã¼ãã¬ããããPDFå½¢å¼ã§ãã¼ã¿ãã¯ã©ã¤ã¢ã³ãã«è¿ä¿¡ããã
- ãã©ã¦ã¶ã«åçã«ä½æãããPDFã表示ãããã
ããµã³ãã«ã¨ãã¦ä½æããPDFã¯ãæ¥åã·ã¹ãã ã§ä¸è¬çã«ä½æããããããªä¸è¦§è¡¨ãã¤ã¡ã¼ã¸ãã¦ãã¾ãã
iTextã使ç¨ããåçãªPDFä½æ
ãiTextã§ã¯ãåºåããPDFå
¨ä½ãDocument
ã¯ã©ã¹ã¨ãã¦è¡¨ç¾ãã¦ãã¾ããæååã¯Phrase
ã¯ã©ã¹ãParagraph
ã¯ã©ã¹ã表ã¯Table
ã¯ã©ã¹ã§è¡¨ç¾ããDocument#add
ã¡ã½ããã§Document
ã¯ã©ã¹ã«ããããã®ãªãã¸ã§ã¯ãã追å ãã¦ãåºåããPDFãä½æããä»çµã¿ã«ãªã£ã¦ãã¾ãã
ãããã§ã¯ã詳細ãªã¢ããªã±ã¼ã·ã§ã³ã®æµããè¦ã¦ããã¾ãããã
ååã®å ¥å
ãå
¥åç»é¢ã®ãéä¿¡ããã¿ã³ãã¯ãªãã¯ããã¨ãitextServlet
ã¯ã©ã¹ã®doPost
ã¡ã½ãããå®è¡ããã¾ãã
ãããã§ã¯ãã¯ã©ã¤ã¢ã³ãããéä¿¡ããã¦ããååãrequest
ã¤ã³ã¹ã¿ã³ã¹ããåãåºãã¦ãã¾ãã
public class itextServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //å ¥åç»é¢ããéä¿¡ããã¦ããå称ã表示ãã¾ãã request.setCharacterEncoding("Shift-JIS"); String strName =request.getParameter("input_name");; //ï¼ä»¥ä¸ç¥ï¼ }
PDFåºåç¨ã¯ã©ã¹ã®å®ç¾©
ãææ¸ãªãã¸ã§ã¯ããä½æãã¦ãPDFåºåã®æºåããã¾ãã
//åºåç¨ã®Streamãã¤ã³ã¹ã¿ã³ã¹åãã¾ãã ByteArrayOutputStream byteout = new ByteArrayOutputStream(); //ææ¸ãªãã¸ã§ã¯ããçæ //ãã¼ã¸ãµã¤ãºãè¨å®ãã¾ãã Document doc = new Document(PageSize.A4, 50, 50, 50, 50); try { //ã¢ã¦ããããã¹ããªã¼ã ãPDFWriterã«è¨å®ãã¾ãã PdfWriter pdfwriter = PdfWriter.getInstance(doc, byteout); }
ãDocument
ã¯ã©ã¹ã¯ãåºåããPDFã表ãææ¸ãªãã¸ã§ã¯ãã§ããDocument
ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã«ã¦ãåºåããPDFã®ãã¼ã¸ãµã¤ãºã¨ä¸ä¸å·¦å³ã®ä½ç½ãè¨å®ã§ãã¾ãï¼çç¥ããå ´åã¯ãããã©ã«ãã§A4ãµã¤ãºã¨ãªãã¾ãï¼ãPdfWriter
ã¯ã©ã¹ã¯ãPDFã®åºåãè¡ãã¯ã©ã¹ã§ããPdfWriter
ã¯ã©ã¹ã«ãåºåããDocument
ã¤ã³ã¹ã¿ã³ã¹ã¨ãåºåå
ã¨ãã¦ByteArrayOutputStream
ã¤ã³ã¹ã¿ã³ã¹ãè¨å®ãã¾ãã
ãããã§PDFåºåã®åæè¨å®ã¯å®äºã§ãã
ãã©ã³ãã®è¨å®
ãåºåãããã©ã³ãã®è¨å®ãè¡ãã¾ãã
/* ãã©ã³ãè¨å®é¨ */ //(ã´ã·ãã¯15pt(太å) Font font_header = new Font(BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED),15,Font.BOLD); //ã´ã·ãã¯11pt Font font_g11 = new Font(BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED),11); //ã´ã·ãã¯10pt Font font_g10 = new Font(BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED),10); //ææ10pt Font font_m10 = new Font(BaseFont.createFont("HeiseiMin-W3", "UniJIS-UCS2-HW-H", BaseFont.NOT_EMBEDDED),10); //ã´ã·ãã¯11pt(ä¸ç·ãã) Font font_underline_11 = new Font(BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED),11,Font.UNDERLINE); //ã´ã·ãã¯11pt(赤) Font font_red_11 = new Font(BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED),11); font_red_11.setColor(new Color(255,0,0));
ããã©ã³ãã®è¨å®ã«ã¯ãFont
ã¯ã©ã¹ã使ç¨ãã¾ããææ¸ãåºåããéã«ãã©ã³ãæ
å ±ã¨ãã¦Font
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãè¨å®ãã¾ããä½åº¦ã使ç¨ãããããªãã©ã³ãã¯å¦çã®åæ段éã§è¨å®ãã¦ãããåå©ç¨ããã¨å¦çãåé·ã«ãªããã«è¯ãã¨æãã¾ãã
ãFont
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ãä½æããéãFont
ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã®ç¬¬1å¼æ°ã«ãã©ã³ãã®ç¨®é¡ã表ãBaseFont
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã渡ãã¦ãã¾ãã第2å¼æ°ã«ã¯ãã©ã³ãã¿ã¤ãï¼å¤ªåãä¸ç·ä»ãï¼ãæå®ããFont
ã¯ã©ã¹ã®å®æ°ããã¾ãã第3å¼æ°ã«ã¯int
åã§æå®ãããã©ã³ããµã¤ãºã渡ãã¾ãããã©ã³ãã«è²ã®è¨å®ãè¡ãå ´åã¯ãFont#setColor
ã¡ã½ããã使ç¨ãã¦RGBå½¢å¼ã§è²ãæå®ãã¦ä¸ããã
ããªããæ¥æ¬èªãã©ã³ãã使ç¨ããéã¯ãBaseFont#createFont
ã¡ã½ããã«ã¦BaseFont
ã¤ã³ã¹ã¿ã³ã¹ãä½æãã¦ä¸ãããBaseFont#createFont
ã®ç¬¬1å¼æ°ã«ã¯ä½¿ç¨ãããã©ã³ãåãã第2å¼æ°ã«ã¯ã¨ã³ã³ã¼ãã£ã³ã°åãè¨å®ãã¾ãï¼æ¥æ¬èªã®ãã©ã³ããã¨ã³ã³ã¼ãã£ã³ã°ã¯ãiTextAsian.jarãã«æ ¼ç´ããã¦ãã¾ãï¼ã
ãã©ã³ãå | 説æ |
KozMinPro-Regular | ææä½ |
HeiseiMin-W3 | ææä½ |
HeiseiKakuGo-W5 | ã´ã·ãã¯ä½ |
ã¨ã³ã³ã¼ãã£ã³ã°å | 説æ |
UniJIS-UCS2-H | Adobeæ¥æ¬èªæåã®UniCodeç¨ã¨ã³ã³ã¼ãã£ã³ã° |
UniJIS-UCS2-V | UniJIS-UCS2-Hã®ç¸¦æ¸ãã¨ã³ã³ã¼ãã£ã³ã° |
UniJIS-UCS2-HW-H | UniJIS-UCS2-Hã®ãã¡ããããã¼ã·ã§ãã«æåã®ã¿åè§æåã«å¤æ´ããã¨ã³ã³ã¼ãã£ã³ã° |
UniJIS-UCS2-HW-V | UniJIS-UCS2-HW-Hã®ç¸¦æ¸ãã¨ã³ã³ã¼ãã£ã³ã° |
PDFãã¡ã¤ã«ã®èª¬æã®è¨å®
ãåºåãããPDFã«ä½æè ãè¨å®ãã¾ãã
//åºåããPDFã«èª¬æãä»ä¸ãã¾ãã doc.addAuthor("岡 é ä¹ "); doc.addSubject("iTextãµã³ãã«");
ãåºåããPDFã«ä½æè
ã¨èª¬æãè¨å®ãããã¨ãã§ãã¾ããDocument#addAuthor
ã¡ã½ããã§ä½æè
åããDocument#addSubject
ã¡ã½ããã§ææ¸ã®èª¬æãè¨å®ãã¾ãã

ãããã¼ã¨ããã¿ã¼ã®è¨å®
ãåºåããPDFã®ãããã¼ã¨ããã¿ã¼ãè¨å®ãã¾ãã
//ãããã¼ã®è¨å®ããã¾ãã HeaderFooter header = new HeaderFooter( new Phrase("ââåäº æé売ä¸å®ç¸¾", font_header), false); header.setAlignment(Element.ALIGN_CENTER); doc.setHeader(header); //ããã¿ã¼ã®è¨å®ããã¾ãã HeaderFooter footer = new HeaderFooter( new Phrase("--"), new Phrase("--")); footer.setAlignment(Element.ALIGN_CENTER); footer.setBorder(Rectangle.NO_BORDER); doc.setFooter(footer);
ããããã¼ã¨ããã¿ã¼ã®è¨å®ã«ã¯ãHeaderFooter
ã¯ã©ã¹ã使ç¨ãã¾ãã
ããããã¼ã«è¨å®ãããæååã¯ãPhrase
ã¯ã©ã¹ã«Font
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¨åããã¦è¨å®ãã¾ããHeaderFooter#setAlignment
ã¡ã½ããã使ç¨ãã¦è¡¨ç¤ºä½ç½®ã調æ´ãã¦ãDocumnet#setHeader
ã¡ã½ããã§PDFã«åºåããè¨å®ãè¡ãã¾ãã表示ä½ç½®ã®æå®ã®éã«ã¯ãElement
ã¯ã©ã¹ã«ä¿æãã¦ããå®æ°ã使ç¨ããã¨ä¾¿å©ã§ãã
ãã¾ããããã¿ã¼ã®å ´åãåæ§ã«ãPhrase
ã¯ã©ã¹ã«åºåæ
å ±ãè¨å®ããDocumnet#setFooter
ã¡ã½ããã§PDFã«åºåããè¨å®ãè¡ãã¾ãããªããHeaderFooter
ã¯ã©ã¹ã®ã³ã³ã¹ãã©ã¯ã¿ã§ãå
¥åå¼æ°ãï¼ã¤åãã¡ã½ããã使ç¨ããã¨ããã¼ã¸ãã³ãã¼ãåºåãããã¨ãã§ãã¾ãã
ææ¸ã®åºåéå§
ãPDFææ¸ã®åºåãéå§ãã¾ãã
//æç« ã®åºåãéå§ãã¾ãã doc.open(); /* 売ä¸å®ç¸¾è¡¨ã®ãã¼ãã«ãä½æãã¾ã */ //帳票æç´°ã®æ¡ä»¶é¨åãè¨å®ãã¾ãã doc.add(new Paragraph("2005å¹´5æå®ç¸¾", font_red_11)); Paragraph para_1 = new Paragraph("æ å½è ï¼" + strName, font_g11); para_1.setAlignment(Element.ALIGN_RIGHT); doc.add(para_1); doc.add(new Paragraph("")); Paragraph para_2 = new Paragraph("åååï¼â³â³â³â³", font_underline_11); para_2.setAlignment(Element.ALIGN_LEFT); doc.add(para_2);
ãææ¸ã®åºåãéå§ããéã¯ãDocument#open
ã¡ã½ããã使ç¨ãã¾ãï¼ãããã¼ãããã¿ã¼ãPDFã®ä½æè
æ
å ±ã¯ææ¸åºåéå§åã«è¨å®ãã¦ããå¿
è¦ãããã¾ãï¼ãåºåãããæååã¯ãParagraph
ã¯ã©ã¹ã«Font
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¨åããã¦è¨å®ãã¦ãDocumnet#add
ã¡ã½ããã§PDFã«åºåãã¾ããParagraph
ã¯ã©ã¹ã¯ãPhrase
ã¯ã©ã¹ãç¶æ¿ãã¦ããã®ã§åºæ¬çãªæ§è³ªã¯åãã§ãããParagraph
ã¯ã©ã¹ã§ã¯setAlignment
ã¡ã½ããã使ç¨ãã表示ä½ç½®ã®æå®ãªã©ã®ä½è£ã®è¨å®ãã§ãã¾ãã
表ã®åºå
ãæ¥åã¢ããªã±ã¼ã·ã§ã³ã§å¸³ç¥¨ãä½æããéã表ã®ä½æã¯ã»ã¼å¿ é ã§ã¯ãªãã§ãããããiTextã§ã¯ã©ã¤ãã©ãªã«ç¨æãããã¯ã©ã¹ã使ç¨ãããã¨ã§ç°¡åã«è¡¨ãä½æã§ãã¾ãã
//帳票æç´°ã®æç´°è¡ãè¨å®ãã¾ãã Table uriage_table = new Table(4); //売ä¸ãã¼ãã«å ¨ä½ã®å¹ ãè¨å®ãã¾ãã uriage_table.setWidth(100); //ãã¼ãã«ååã®å¹ ããã¼ã»ã³ãã¼ã¸ã§è¨å®ãã¾ãã int uriage_table_width[] = {10,20,40,30}; uriage_table.setWidths(uriage_table_width); //ãã¼ãã«ã®ããã©ã«ãã®è¡¨ç¤ºä½ç½®ï¼æ¨ªï¼ãè¨å®ãã¾ãã uriage_table.setDefaultHorizontalAlignment(Element.ALIGN_CENTER); //ãã¼ãã«ã®ããã©ã«ãã®è¡¨ç¤ºä½ç½®ï¼ç¸¦ï¼ãè¨å®ãã¾ãã uriage_table.setDefaultVerticalAlignment(Element.ALIGN_MIDDLE); //ãã¼ãã«ã®ä½ç½ãè¨å®ãã¾ãã uriage_table.setPadding(3); //ãã¼ãã«ã®ã»ã«éã®ééãè¨å®ãã¾ãã uriage_table.setSpacing(0); //ãã¼ãã«ã®ç·ã®è²ãè¨å®ãã¾ãã uriage_table.setBorderColor(new Color(0, 0, 0));
ãiTextã§è¡¨ãä½æããã«ã¯ãTable
ã¯ã©ã¹ã使ç¨ãã¾ããã¤ã³ã¹ã¿ã³ã¹åããéã«å¼æ°ã¨ãã¦ä½æãã表ã®åæ°ãè¨å®ãã¾ããTable#setWidth
ã¡ã½ããã§è¡¨å
¨ä½ã®è¡¨ç¤ºå¹
ããã¼ã»ã³ãã¼ã¸ã§è¨å®ãã¾ããã¾ããTable#setWidths
ã¡ã½ããã§ååã®å¹
ããã¼ã»ã³ãã¼ã¸ã§è¨å®ãã¾ãã
//æç´°è¡ã®é ç®åé¨åã®ã»ã«ã®è¨å®ãè¡ãã¾ã //ï¼ã»ã«ã«ç¶²æãè¨å®ãè¡ãã¾ãï¼ã Cell cell_11 = new Cell(new Phrase("é ä½", font_g10)); cell_11.setGrayFill(0.8f); Cell cell_21 = new Cell(new Phrase("顧客ã³ã¼ã", font_g10)); cell_21.setGrayFill(0.8f); Cell cell_31 = new Cell(new Phrase("顧客å称", font_g10)); cell_31.setGrayFill(0.8f); Cell cell_41 = new Cell(new Phrase("éé¡", font_g10)); cell_41.setGrayFill(0.8f); //ãã¼ãã«ã«ã»ã«ãè¨å®ãã¾ã uriage_table.addCell(cell_11); uriage_table.addCell(cell_21); uriage_table.addCell(cell_31); uriage_table.addCell(cell_41);
ã表ã®åé
ç®ãè¨å®ããã«ã¯ãCell
ã¯ã©ã¹ã使ç¨ãã¾ããåºåãããæååã¯ãPhrase
ã¯ã©ã¹ã«Font
ã¯ã©ã¹ã®ã¤ã³ã¹ã¿ã³ã¹ã¨åããã¦è¨å®ããCell
ã¯ã©ã¹ã«æ ¼ç´ãã¾ããã»ã«ã«ç¶²æãè¨å®ãè¡ãããå ´åã¯ãCell.setGrayFill
ã¡ã½ããã使ç¨ãã¾ããä½æããCell
ã¯ã©ã¹ã¯ãTable#addCell
ã¡ã½ããã§è¡¨ã«è¿½å ãã¾ãã
//åè¨è¡ãåºåãã¾ãã Cell cell_goukei = new Cell(new Phrase("åè¨", font_g10)); cell_goukei.setGrayFill(0.8f); cell_goukei.setColspan(3); uriage_table.addCell(cell_goukei); Cell cell_sum = new Cell(new Phrase("136,900", font_m10)); cell_sum.setHorizontalAlignment(Element.ALIGN_RIGHT); uriage_table.addCell(cell_sum); //ãã¼ãã«ãããã¥ã¡ã³ããªãã¸ã§ã¯ãã«è¿½å ãã¾ãã doc.add(uriage_table);
ãCell#setColspan
ã¡ã½ããã§åã®çµåãCell#setRowspan
ã¡ã½ããã§è¡ã®çµåãè¡ãã¾ãã
ãCell
ã¯ã©ã¹ã®è¨å®ãå®äºããTable
ã¯ã©ã¹ã¯ãDocumnet#add
ã¡ã½ããã§PDFã«åºåãã¾ãã
ã¯ã©ã¤ã¢ã³ãã¸ã®åºå
ãåºåããPDFããã¯ã©ã¤ã¢ã³ãã®ãã©ã¦ã¶ã¸éä¿¡ãã¾ãã
public class itextServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //ï¼çç¥ï¼ // åºåãçµäºãã¾ãã doc.close(); // ãã©ã¦ã¶ã¸ã®ãã¼ã¿ãéä¿¡ãã¾ã //(åºåããã³ã³ããã¹ãã¿ã¤ãã«PDFãæå®ãã¾ã)ã response.setContentType("application/pdf"); response.setContentLength(byteout.size()); OutputStream out = response.getOutputStream(); out.write(byteout.toByteArray()); out.close();
ãDocumnet#close
ã¡ã½ããã«ã¦PDFã¸ã®åºåå¦çãå®äºãã¾ããåºåããPDFã¯ãOutputStream#write
ã¡ã½ããã§ã¯ã©ã¤ã¢ã³ãã«éä¿¡ãã¾ãã
ãã¾ããPDFã¿ã¤ãã®ãã¼ã¿ã§ãããã¨ãã¯ã©ã¤ã¢ã³ãã®ãã©ã¦ã¶ã«ä¼ããããã«ãHttpServletResponse#setContentType
ã«ã¦ã³ã³ãã³ãã¿ã¤ãï¼MIMEï¼ãPDFã¨ãã¦è¨å®ãã¦ãã¾ãã
ã以ä¸ã§ãPDFãã¡ã¤ã«ãåçã«ä½æããå¦çã¯çµäºã§ãã
ã¾ã¨ã
ãiTextã®ä¸»ãªã©ã¤ãã©ãªã¯ã©ã¹ãã¾ã¨ãã¾ãã
ã¯ã©ã¹å | 説æ |
Document | åºåããPDFææ¸ã表ãã¯ã©ã¹ã§ãã |
PdfWriter | ãDocumentãã¯ã©ã¹ããã¨ã«ãæå®ãããåºåå ã«PDFåºåãè¡ãã¯ã©ã¹ã§ãã |
Font | ãã©ã³ããæå®ããããã®ã¯ã©ã¹ã§ããè²ã®æå®ãå¯è½ã§ãã |
HeaderFooter | ãããã¼ãããã¿ã¼ãè¨å®ããããã®ã¯ã©ã¹ã§ãã |
Chunk | æååã®æå°åä½ã表ãã¯ã©ã¹ã§ããåä¸ã®ãã©ã³ãã§è¡¨ç¾ããã¾ãã |
Phrase | æååãè¨å®ããããã®ã¯ã©ã¹ã§ããè¤æ°ã®Chunk ã¯ã©ã¹ã§æ§æããã¾ããChunk ã¯ã©ã¹ã使ç¨ããã«ç´æ¥æååãè¨å®ãããã¨ãå¯è½ã§ãã |
Paragraph | æååãè¨å®ããããã®ã¯ã©ã¹ã§ãPhrase ã¯ã©ã¹ãç¶æ¿ãã¦ãã¾ãããã®ã¯ã©ã¹ç¬èªã«ã¤ã³ãã³ãã表示ä½ç½®ã®è¨å®ãã§ãã¾ããè¤æ°ã®Chunk ã¯ã©ã¹ãPhrase ã¯ã©ã¹ã§æ§æããã¾ãããç´æ¥æååãè¨å®ãããã¨ãå¯è½ã§ãã |
Table | 表ã®åºåãè¡ãããã®ã¯ã©ã¹ã§ãã |
Cell | 表ã®åã»ã«ã®è¨å®ãè¡ãããã®ã¯ã©ã¹ã§ãã |
ãæ¬ç¨¿ã§ã¯ãç°¡åãªæ¥å帳票ãåçã«ä½æããå¦çãéãã¦ãiTextã©ã¤ãã©ãªã§PDFãä½æããåºæ¬çãªå¦çã«ã¤ãã¦ç´¹ä»ãã¾ãããPDFãä½æããåºæ¬çãªå¦çã¯ãµã³ãã«ã®ã¨ããã§ãããiTextã«ã¯ã¾ã ãããããªã©ã¤ãã©ãªãç¨æããã¦ãã¾ãã®ã§ãèå³ã®ããæ¹ã¯ãiTextä»å±ã®APIããã¥ã¡ã³ããªã©ããã²ãä¸èªãã ããã