Milad_Af4

مشکل فارسی نویسی با iText در اندروید

1 ارسال در این موضوع قرار دارد

سلام 
قصد من اینه که از داده های (String) دریافتی از کاربر یک فایل PDF تهیه نموده و تقدیم ایشون کنم!
الان با iText این کار انجام میشه ولی فقط حروف لاتین رو نمایش میده و حروف فارسی تو فایل پی دی اف ناپدید میشن.

سرچ زدم گفتن از یک فونت مثل Tahoma یا Niloofar استفاده کن ، فونت اِعمال میشه ولی باز هم متن فارسی قابل نمایش نیست!
ممنون میشم اگه کسی با این iTextPdf کار کرده بنده رو راهنمایی کنه تا کار ما هم راه بیوفته ♥

  • --   ورژن لایبرری : itextpdf-5.3.3 
  • --   کد ها :
public class ActivityPdfMaker extends AppCompatActivity {

    private Note note;
    private PdfWriter pWriter;
    private BaseFont mBaseFont;
    Button make;

    private String
             stringNote
            ,stringFileName
            ,stringTitle
            ,stringSubject
            ,stringKeywords
            ,stringAuthor
            ,stringCreator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pdf_maker);

        URL font_path = Thread.currentThread().getContextClassLoader().getResource("niloofar.ttf");
        String fPath = String.valueOf(font_path);
        try {
            mBaseFont = BaseFont.createFont(fPath,"UTF-8",BaseFont.EMBEDDED);
        } catch (DocumentException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
		
		
		make = (Button) findViewById(R.id.make);
        make.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    makePdf();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

    }

    private void makePdf() throws IOException {

        String FILE = Environment.getExternalStorageDirectory().toString()+ "/PDF/" +stringFileName+".pdf";

        Document document = new Document(PageSize.A4);
        String root = Environment.getExternalStorageDirectory().toString();
        File myDir = new File(root + "/PDF");
        myDir.mkdirs();
        try {
            pWriter = PdfWriter.getInstance(document, new FileOutputStream(FILE));

            document.open();

            document.addTitle(stringTitle);
            document.addSubject(stringSubject);
            document.addKeywords(stringKeywords);
            document.addAuthor(stringAuthor);
            document.addCreator(stringCreator);

            addTitlePage(document);

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (DocumentException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        document.close();

        Toast.makeText(this, "فایل شما تهیه شد : " + FILE,
                Toast.LENGTH_LONG).show();

    }

    public void addTitlePage(Document document) throws DocumentException {

        Font catFont = new Font(mBaseFont, 18, Font.BOLD, BaseColor.BLACK);
        Font titleFont = new Font(mBaseFont, 22, Font.BOLD
                | Font.UNDERLINE, BaseColor.GRAY);
        Font smallBold = new Font(mBaseFont, 12, Font.BOLD);
        Font normal = new Font(mBaseFont, 12, Font.NORMAL);

        Paragraph prHead = new Paragraph();
        prHead.setFont(titleFont);
        prHead.add(stringFileName+"\n");

        PdfPTable myTable = new PdfPTable(1);
        myTable.setWidthPercentage(100.0f);

        PdfPCell myCell = new PdfPCell(new Paragraph(""));
        myCell.setBorder(Rectangle.BOTTOM);

        myTable.addCell(myCell);

        prHead.setFont(catFont);
        prHead.add("\n"+stringSubject+"\n");
        prHead.setAlignment(Element.ALIGN_CENTER);

        document.add(prHead);
        document.add(myTable);

        document.add(myTable);

        Paragraph prPersinalInfo = new Paragraph();
        prPersinalInfo.setFont(smallBold);
        prPersinalInfo.add("\n"+stringNote+"\n");
        prPersinalInfo.setAlignment(Element.ALIGN_CENTER);

        document.add(prPersinalInfo);
        document.add(myTable);

        document.add(myTable);

        Paragraph prProfile = new Paragraph();
        prProfile.setFont(smallBold);
        prProfile.add("\n \n Profile : \n ");
        prProfile.setFont(normal);
        prProfile.add("\n"+"Author: "+stringAuthor+"\n"+"Creator: "+stringCreator);

        prProfile.setFont(smallBold);
        document.add(prProfile);

        document.newPage();
    }
}

 

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری