Я работаю с iText на андроиде, и это в основном мой сценарий:
Запуск HTTP-вызова для получения данных GET. Разбор XML для получения строки внутри него. Используйте строку для создания PDF файла.
Строка, которую я извлекаю из XML, - это закодированные pdf-данные, физически поступающие из другого PDF файла в Интернете.
Я прошел процесс декодирования, так что его расшифрованная строка... теперь мне просто нужно заставить ее писать в какой-то API, чтобы он мог правильно сохранять.
В настоящее время я работаю с iText, и когда я пытаюсь добавить Paragraph - он делает именно то, что я ожидал, и записывает строку (включая теги, такие как название и автор и т.д.),
Есть ли способ просто написать эту строку в PDF-документе и сохранить ее правильно?
(Я ранее удалил вопрос об этом, чтобы перефразировать проблему как можно лучше).
Попробуйте этот путь...
try {
Document document = new Document();
File root = new File(Environment.getExternalStorageDirectory(),
"foldername");
String sdcardhtmlpath = root.getPath().toString() + "/filename.pdf";
PdfWriter.getInstance(document,
new FileOutputStream(sdcardhtmlpath));
document.open();
Paragraph paragraph = new Paragraph("your string");//add ur string here
paragraph.setAlignment(Element.ALIGN_LEFT);
document.add(paragraph);
document.close();
} catch (Exception e) {
Log.v("PDFcreation", e.toString());
}
try{
File obj=new File(Environment.getExternalStorageDirectory(),"pdf");
if(!obj.exists())
{
obj.mkdirs();
}
String name=obj.getAbsolutePath()+"/mypdf.pdf";
FileOutputStream fop=new FileOutputStream(name);
Document doc=new Document();
PdfWriter.getInstance(doc, fop);
doc.open();
Font font=new Font(FontFamily.TIMES_ROMAN, 20, Font.STRIKETHRU, BaseColor.GREEN);
Paragraph p=new Paragraph("sample pdf",font);
p.setAlignment(Element.ALIGN_LEFT);
doc.add(p);
doc.close();
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
public void createPDF()
{
Document doc = new Document();
try {
String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "//pdf";
File dir = new File(path);
if(!dir.exists())
dir.mkdirs();
Log.d("PDFCreator", "PDF Path: " + path);
File file = new File(dir, "sample1.pdf");
FileOutputStream fOut = new FileOutputStream(file);
PdfWriter.getInstance(doc, fOut);
//open the document
doc.open();
Paragraph p1 = new Paragraph("Hi! I am generating my first PDF using iText library");
Font paraFont= new Font(Font.COURIER);
p1.setAlignment(Paragraph.ALIGN_CENTER);
p1.setFont(paraFont);
//add paragraph to document
doc.add(p1);
Paragraph p2 = new Paragraph("This is an example of a simple paragraph");
Font paraFont2= new Font(Font.COURIER,14.0f,Color.GREEN);
p2.setAlignment(Paragraph.ALIGN_CENTER);
p2.setFont(paraFont2);
doc.add(p2);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
Bitmap bitmap = BitmapFactory.decodeResource(getBaseContext().getResources(), R.drawable.android);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100 , stream);
Image myImg = Image.getInstance(stream.toByteArray());
myImg.setAlignment(Image.MIDDLE);
//add image to document
doc.add(myImg);
//set footer
Phrase footerText = new Phrase("This is an example of a footer");
HeaderFooter pdfFooter = new HeaderFooter(footerText, false);
doc.setFooter(pdfFooter);
} catch (DocumentException de) {
Log.e("PDFCreator", "DocumentException:" + de);
} catch (IOException e) {
Log.e("PDFCreator", "ioException:" + e);
}
finally
{
doc.close();
}
это простая программа с помощью usinf droidText libary. Попробуйте это работать.