بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

مشکل در تبديل html به pdf در اندرويد با پشتیباني از زبان فارسی

مدیریت گفتگو
فکوری 8 سال پیش
آخرین تغییر: 7 سال پیش

سلام چگونه ميشود متن Html به pdf تبديل کرد به شکلي که از زبان فارسي پشتيباني کند ؟

نظرات

Hossein Lamei Ramandi 7 سال پیش
یه تیکه از کدتون هم میزاشتید, اینجوری رو هوا نمیتونم بگم ( هرچند رو زمین هم شاید نتونم بگم )

پاسخ‌ها 3

مشاهده پاسخ صحیح
فکوری 7 سال پیش

من برای زبان انگلیسی این موضوع مشکلم حل شد ولی فارسی رو نمیتونه تبدیل کنه مثلا در کد پایین تمام متون انگلیسی به pdf تبدیل میکنه ولی کلمه سلام رو تبدیل نمیکنه 

 
 
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void crate() {
try {
// step 1
Document document = new Document();
PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(Environment.getExternalStorageDirectory() + "/tmp/rr.pdf"));

document.open();

String str = "<html><head></head><body style=\"font-size:12.0pt; font-family:Times New Roman\">"+
"<a href='http://www.rgagnon.com/howto.html'><b>Real's HowTo</b></a>" +
"<h1>--->سلام</h1>" +
"<p>It cost a to produce this site - in ISP storage and transfer fees</p>" +
"<p>TEST POLSKICH ZNAKÓW: \u0104\u0105\u0106\u0107\u00d3\u00f3\u0141\u0142\u0179\u017a\u017b\u017c\u017d\u017e\u0118\u0119</p>" +
"<hr/>" +
"<p>the huge amounts of time it takes for one person to design and write the actual content.</p>" +
"<p>If you feel that effort has been useful to you, perhaps you will consider giving something back?</p>" +
"<p>Donate using PayPal\u017d</p>" +
"<p>Contributions via PayPal are accepted in any amount</p>" +
"<p><br/><table border='1'><tr><td>Java HowTo</td></tr><tr>" +
"<td style='background-color:red;'>Javascript HowTo</td></tr>" +
"<tr><td>Powerbuilder HowTo</td></tr></table></p>" +
"</body></html>";

XMLWorkerHelper worker = XMLWorkerHelper.getInstance();
InputStream is = new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8));


BaseFont urName = BaseFont.createFont("assets/IRANSansMobile.TTF", "UTF-8",BaseFont.EMBEDDED);
Font urFontName = new Font(urName, 12);

pdfWriter.setRunDirection(PdfWriter.RUN_DIRECTION_RTL);

worker.parseXHtml(pdfWriter, document, is, Charset.forName("UTF-8"));
// step 5
document.close();

} catch (Exception e) {
Log.i("TAG", "yyy");
e.printStackTrace();
}
}


 

نظرات

gadolf 7 سال پیش
به نظر من مشکل تون احتمالا از به هم ریختگی کدهای HTML به دلیل استفاده از متون فارسی ه. اگه امکانش هست توی جایی از کدتون خاصیت rtl رو استفاده کنید. این کارو هم امتحان کنید، مثلاً کلمه سلام رو توی متغیری ذخیره کنید و از این متغیر در متن HTML تون استفاده کنید ببینید جواب میده.
فکوری 7 سال پیش
هیچکدوم از دو نظر جواب نداد تست کردم فونت XB ZAR هم اضافه کردم باز نشد
gadolf 7 سال پیش
اگه هدف برنامه شا اجازه می‌ده به نظرم بجای اینکه string رو تبدیل به pdf بکنید، سعی کنید فایل HTML ی که توی منابع تون از قبل ذخیره کردید رو تبدیل به pdf بکنید. شاید این راه حل بهتری باشه.
فکوری 7 سال پیش
فرقی ندارن که فایل html هم هاویه یک سریع string هست دیگه
gadolf 7 سال پیش
یه کار دیگه هم بکنید. توی تگ head این خط رو هم بنویسید.
gadolf 7 سال پیش

داخل تگ head این خط رو بنویسید شاید درست شه.

<head>
<meta charset = "UTF-8" />
</head>

نظرات

فکوری 7 سال پیش

 پاسخ صحیح

سلام با تشکر از دوستان مشکل حل شد اموزشش رو در اسنیپ میزارم شاید برای دوستان نیاز شود 

https://snip.uncox.com/study/317/%D8%AA%D8%A8%D8%AF%DB%8C%D9%84-%D8%B1%D8%B4%D8%AA%D9%87-html-%D8%A8%D9%87-%D9%81%D8%A7%DB%8C%D9%84-pdf

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .