studio reales proyectos programacion libro introducción incluye herramientas fundamentos fuente español código con avanzado aplicaciones java .net itextsharp itext

java - reales - texto de posicionamiento siguiente



libro de android studio en español pdf (5)

Al final escribí mi propio método para hacerlo.

private void PlaceChunck(String text, int x, int y) { PdfContentByte cb = writer.DirectContent; BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.SaveState(); cb.BeginText(); cb.MoveText(x, y); cb.SetFontAndSize(bf, 12); cb.ShowText(text); cb.EndText(); cb.RestoreState(); }

En el siguiente, tengo un fragmento / frase / párrafo (no me importa cuál) y quiero ubicarlos en algún otro lugar de la página, por ejemplo, a 300 x 200. ¿Cómo haría esto?


Aquí hay una versión con todas las carcasas correctas y el bloque try / catch:

private static void absText(String text, int x, int y) { try { PdfContentByte cb = writer.getDirectContent(); BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.saveState(); cb.beginText(); cb.moveText(x, y); cb.setFontAndSize(bf, 12); cb.showText(text); cb.endText(); cb.restoreState(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }


En mi caso solo esta solución funcionó bien.

PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream(FILE));

Agregar método

private void addTextData(Document document, String text) { PdfContentByte cb = pdfWriter.getDirectContent(); cb.beginText(); try { BaseFont f_cn = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.setFontAndSize(f_cn, 40); float requiredX = 50; float requiredY = 50; Paint paint = new Paint(); paint.setTextSize(40); Typeface typeface=Typeface.createFromAsset(getAssets(), "Helvetica.ttf"); paint.setTypeface(typeface); paint.setColor(Color.BLACK); paint.setStyle(Paint.Style.FILL); Rect result = new Rect(); paint.getTextBounds(text, 0, text.length(), result); Log.i("Text dimensions", "Width: "+result.width()+"-Height: "+result.height()); float calculatedY = document.getPageSize().getHeight() - result.height() - requiredY; cb.setTextMatrix(requiredX, calculatedY); cb.showText(text); cb.endText(); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } }

Esto te ayudará a ciencia cierta.


Espero que esto te ayude! Aquí está mi código ...

Document document = new Document(PageSize.A4); PdfWriter writer = PdfWriter.getInstance(document, output); document.open(); FixText("Add Your Text",400,700,writer,14); document.close();

Añadir función:

private static void FixText(String text, int x, int y,PdfWriter writer,int size) { try { PdfContentByte cb = writer.getDirectContent(); BaseFont bf = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); cb.saveState(); cb.beginText(); cb.moveText(x, y); cb.setFontAndSize(bf, size); cb.showText(text); cb.endText(); cb.restoreState(); } catch (DocumentException | IOException e) { e.printStackTrace(); } }


Hice algo en este sentido, tal vez ayude a otros:

ColumnText ct = new ColumnText(writer.getDirectContent()); ct.setSimpleColumn(left,bottom,right,top); ct.setText(new Phrase("String")); ct.go();