ورود

View Full Version : گزارش گیری با فونت فارسی با itex



mammad_asir
چهارشنبه 13 اسفند 1393, 10:21 صبح
با سلام من دارم تو برنامه جاوا از itex برای گزارش گیری پی دی اف استفاده میکنم میخوام نوشتههام فارسی باشه ولی نمیدونم چرا itex فارسی رو چاپ نمیکنه؟؟؟؟؟؟؟

omidbizdotcom
چهارشنبه 13 اسفند 1393, 15:53 عصر
با سلام من دارم تو برنامه جاوا از itex برای گزارش گیری پی دی اف استفاده میکنم میخوام نوشتههام فارسی باشه ولی نمیدونم چرا itex فارسی رو چاپ نمیکنه؟؟؟؟؟؟؟

یعنی چی فارسی رو چاپ نمی کنه ؟ باهاش صحبت کن چاپ می کنه باید از MultiColumnText(); استفاده کنی



MultiColumnText mct = new MultiColumnText();
mct.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
mct.addElement(new Paragraph(neveshteFarsiUnicode, font));


فونت و حتما embed کن



bf = BaseFont.createFont("c:/windows/fonts/arial.ttf",
BaseFont.CP1252, BaseFont.EMBEDDED);
font = new Font(bf, 12);

mammad_asir
پنج شنبه 14 اسفند 1393, 11:28 صبح
من یه برنامه ای نوشتم متن انگلیسی چاپ میشد ولی فارسی مینوشتم اصلا چیزی چاپ نمیشد.
اون قسمت اول واسه چیه؟
من BaseFont رو مینویسم خطا میداد؟ البته من به جای BaseFont.CP1252 از identify استفاده میکردم.
میشه یه تیکه کد کامل بزارید؟ متشکر

mammad_asir
شنبه 16 اسفند 1393, 10:57 صبح
من یه برنامه ای نوشتم متن انگلیسی چاپ میشد ولی فارسی مینوشتم اصلا چیزی چاپ نمیشد.
اون قسمت اول واسه چیه؟
من BaseFont رو مینویسم خطا میداد؟ البته من به جای BaseFont.CP1252 از identify استفاده میکردم.
میشه یه تیکه کد کامل بزارید؟ متشکر



import java.io.FileOutputStream;
import java.io.IOException;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Font;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.pdf.draw.LineSeparator;








import java.io.FileOutputStream;
import java.util.Date;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;


import com.itextpdf.text.pdf.ColumnText;

public class Farsi2 {



public static void main(String[] args) {
try {
// BaseFont bf = BaseFont.createFont("C:\\Fonts\\tahoma.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);


Document document = new Document();
FileOutputStream fos = new FileOutputStream("E:\\Ghorbani\\pROJECT\\pdf\\FarsiFont.pdf");
PdfWriter writer = PdfWriter.getInstance(document,fos);
document.open();
BaseFont bf = BaseFont.createFont("C:\\Fonts\\tahoma.ttf", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font a = new Font(bf,10);
Paragraph p1 = new Paragraph("سلام دوست من",a);
//p1.setFont(a);

//خطوط اضافه شده\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
MultiColumnText mct = new MultiColumnText();
mct.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
mct.addElement(new Paragraph(neveshteFarsiUnicode, font));



document.add(p1);
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}




}

این که منه اون سه خطی رو که گفتید اضافه کردم اررور میده
در ضمن بدون اون سه خط فارسی رو چاپ میکنه ولی برعکس مینویسه
متشکر

omidbizdotcom
دوشنبه 18 اسفند 1393, 09:53 صبح
این که منه اون سه خطی رو که گفتید اضافه کردم اررور میده
در ضمن بدون اون سه خط فارسی رو چاپ میکنه ولی برعکس مینویسه
متشکر


mct.addElement(p1));


document.add(mct);

mammad_asir
چهارشنبه 20 اسفند 1393, 14:28 عصر
mct.addElement(p1));


document.add(mct);





متشکر از جوابتون
یه سوال دیگه داشتم من الان میتونم تو pdf فارسی بنویسم ولی میخوام چند جدول داشته باشم و تو شون بتونم فارسی بنویسم متاسفانه نمیتونم این کار رو بکنم چون خونه های جدول اون نووع داده رو نمیشناسه
برنامم به شکل زیر هستimport java.io.FileOutputStream;import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import java.util.Date;
import java.util.Locale.Category;
import java.io.FileOutputStream;
import java.util.Date;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Font.FontFamily;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.ColumnText;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.text.Anchor;
import com.itextpdf.text.BadElementException;
import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chapter;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Image;
import com.itextpdf.text.List;
import com.itextpdf.text.ListItem;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Section;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;




public class FarsiTableClass {

public static void main(String[] args) {
try {
Document document = new Document();
FileOutputStream fos = new FileOutputStream("E:\\Ghorbani\\pROJECT\\pdf\\FarsiTable.pdf");
// PdfWriter.getInstance(document, new FileOutputStream(FILE));
PdfWriter writer = PdfWriter.getInstance(document,fos);
document.open();
Paragraph paragraph = new Paragraph();
BaseFont bf = BaseFont.createFont("C:\\Fonts\\BNAZANIN.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font a = new Font(bf,10,Font.BOLD, BaseColor.BLUE);
ColumnText ct = new ColumnText(writer.getDirectContent());
ct.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);
ct.setSimpleColumn(100, 100, 500, 800, 24, Element.ALIGN_RIGHT);
//ct.addElement(new Paragraph("سلام دوست من ", a));
//Element eel;
String str="سلام من من من سسسسسسسسسسسسسسسسس";
ct.addElement(new Paragraph("سلام دوست من ", a));
ct.go();
//ct.addElement(new Paragraph(str, a));
ct.addElement(new Paragraph(" ", a));
ct.addElement(new Paragraph(" ", a));
ct.addElement(new Paragraph(" ", a));
ct.addElement(new Paragraph("سسسسسسسسسسسسسسس", a));
// List li=new List();
// li.add("aa");
// li.add("bb");
// li.toString();
//int ii= ct.go();
ct.go();
//System.out.println("a: " + ii);
String input = "E:\\Ghorbani\\pROJECT\\pdf\\4.tif";
// String sstt;
//sstt=ct.toString();
//System.out.println("a: " + ct.toString());
PdfPTable table = new PdfPTable(3);
table.setWidthPercentage(288 / 5.23f);
table.setWidths(new int[]{2, 1, 1});
PdfPCell cell;
cell = new PdfPCell(new Phrase("Table1"));
cell.setColspan(3);
table.addCell(cell);
cell = new PdfPCell(new Phrase("Cell with rowspan 2"));
cell.setRowspan(2);
table.addCell(cell);
table.addCell(Image.getInstance(input));
// String ss="ww";
table.addCell("row 1; cell 2");
table.addCell("row 2; cell 1");
table.addCell("row 2; cell 2");
cell = new PdfPCell(new Phrase("Cell with rowspan 2"));
cell.setRowspan(2);
table.addCell(cell);
//table.addCell([String]ct);
table.addCell("row 3; cell 1");
table.addCell("row 3; cell 2");
table.addCell("row 4; cell 1");
table.addCell("row 4; cell 2");
document.add(table);
document.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}