Dear all,
I have been writing a Cordova plugin and looking for quite a while to add
some text on a specific position in a pdf template. Has someone a working
example for me?
What I have done so far
1. Read the resource file from the raw folder R.raw.template - works
File file = new
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
+ "/target.pdf");
InputStream is =
cordova.getActivity().getResources().openRawResource(R.raw.template);
OutputStream os = new FileOutputStream(file);
byte[] fileData = new byte[is.available()];
is.read(fileData);
os.write(fileData);
is.close();
os.close();
2. Use the PdfRenderer to get single pages from the file - works
File templateFile = new
File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
+ "/target.pdf")
PdfRenderer renderer = new PdfRenderer(ParcelFileDescriptor.open(file,
ParcelFileDescriptor.MODE_READ_WRITE));
Page page = renderer.openPage(0);
3. Try to add information to the page - does not work
public Bitmap drawText(String text, int textWidth, int textSize) {
// Get text dimensions
TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG
| Paint.LINEAR_TEXT_FLAG);
textPaint.setStyle(Paint.Style.FILL);
textPaint.setColor(Color.BLACK);
textPaint.setTextSize(textSize);
StaticLayout mTextLayout = new StaticLayout(text, textPaint,
textWidth, Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
// Create bitmap and canvas to draw to
Bitmap b = Bitmap.createBitmap(textWidth, mTextLayout.getHeight(),
Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
// Draw background
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG
| Paint.LINEAR_TEXT_FLAG);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
c.drawPaint(paint);
// Draw text
c.save();
c.translate(0, 0);
mTextLayout.draw(c);
c.restore();
return b;
}
Bitmap b = drawText("foobar", *100*, *10*);
page.render(b, new Rect(0, 0, b.getWidth(), b.getHeight()), new Matrix(),
PdfRenderer.Page.RENDER_MODE_FOR_PRINT);
page.close();
renderer.close();
But I only see the original template file. Any hints or example on this.
External libraries should not be a solution.
--
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/android-developers/21692900-68a1-42d1-8b04-aae55aa4ccd6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.