بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
مشکل در تبديل html به pdf در اندرويد با پشتیباني از زبان فارسی
مدیریت گفتگو
آخرین تغییر: 7 سال پیش
سلام چگونه ميشود متن Html به pdf تبديل کرد به شکلي که از زبان فارسي پشتيباني کند ؟
پاسخها 3
مشاهده پاسخ صحیحمن برای زبان انگلیسی این موضوع مشکلم حل شد ولی فارسی رو نمیتونه تبدیل کنه مثلا در کد پایین تمام متون انگلیسی به 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();
}
}
نظرات
به نظر من مشکل تون احتمالا از به هم ریختگی کدهای HTML به دلیل استفاده از متون فارسی ه. اگه امکانش هست توی جایی از کدتون خاصیت rtl رو استفاده کنید. این کارو هم امتحان کنید، مثلاً کلمه سلام رو توی متغیری ذخیره کنید و از این متغیر در متن HTML تون استفاده کنید ببینید جواب میده.
هیچکدوم از دو نظر جواب نداد تست کردم فونت XB ZAR هم اضافه کردم باز نشد
اگه هدف برنامه شا اجازه میده به نظرم بجای اینکه string رو تبدیل به pdf بکنید، سعی کنید فایل HTML ی که توی منابع تون از قبل ذخیره کردید رو تبدیل به pdf بکنید. شاید این راه حل بهتری باشه.
فرقی ندارن که فایل html هم هاویه یک سریع string هست دیگه
یه کار دیگه هم بکنید. توی تگ head این خط رو هم بنویسید.
داخل تگ head این خط رو بنویسید شاید درست شه.
<head>
<meta charset = "UTF-8" />
</head>
نظرات
درست کار نکرد
پاسخ صحیح
سلام با تشکر از دوستان مشکل حل شد اموزشش رو در اسنیپ میزارم شاید برای دوستان نیاز شود
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات