font can't display Complete when text length greater than pdf edit box length
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
The report uses AcroFields#setFieldProperty and AcroFields#setField to fill and flatten a PDF form field. Start by reading those APIs and the tests covering AcroFields text fitting or field appearance generation; the issue does not name a test or source file. Done means long Chinese text is fully visible, with a reduced font size if needed.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
when text length is longger, same text can't display ,
such as my text is "这是一段非常长的文字这是一段非常长的文字这是一段非常长的文字",
but pdf may be only show "这是一段非常长的文字这是一段" ,
I don't find api or code how to slove it , in AcroFields#setFieldProperty , can't find "fontsize" .
may I have some other way to slove it ? I hope can display complete ,although the font size may be small.
there is my demo code:
`
// load pdf file
ClassPathResource resource = new ClassPathResource("my.pdf");
InputStream inputStream = resource.getInputStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
com.lowagie.text.pdf.PdfReader reader = null;
ByteArrayOutputStream bos = null;
try {
reader = new com.lowagie.text.pdf.PdfReader(bufferedInputStream);
bos = new ByteArrayOutputStream();
com.lowagie.text.pdf.PdfStamper pdfStamper = new com.lowagie.text.pdf.PdfStamper(reader, bos);
com.lowagie.text.pdf.AcroFields acroFields = pdfStamper.getAcroFields();
// chinese font
com.lowagie.text.pdf.BaseFont font = com.lowagie.text.pdf.BaseFont.createFont("simsun.ttc,0", com.lowagie.text.pdf.BaseFont.IDENTITY_H, com.lowagie.text.pdf.BaseFont.EMBEDDED);
for (Map.Entry<String, String> param : params1.entrySet()) {
// set text font
acroFields.setFieldProperty(param.getKey().trim(), "textfont", font, null);
// replace map content to pdf (write content from map value, map defined by self)
// and the problems occur here
acroFields.setField(param.getKey().trim(), param.getValue());
}
// set pdf edit box can't edit after replacing map value
pdfStamper.setFormFlattening(true);
pdfStamper.close();
// return
PdfServiceController.ServletUtils.writeAttachment(response, "简单劳动合同模板.pdf", bos.toByteArray());
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
assert bos != null;
bos.close();
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
`
- Lenguaje dominante
- Java
- Estrellas
- 4.4k
- Forks
- 714
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de LibrePDF/OpenPDF
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
-
IndexOutOfBoundsException in PdfReaderPosiblemente ocupada @andreasrosdalw la tomó hace 95 días. Abiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
`PdfSmartCopy` can take effectively unbounded time on nested shared Form XObjectsPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 38/100
Todos los issues de LibrePDF/OpenPDF
Issues similares
-
[BUG] micronaut-serde-oracle-jdbc-json brings a second OJDBC driver onto the runtime classpathPosiblemente ocupada @ZARAYACH la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
micronaut-projects/micronaut-serialization#1494 · 4 comentarios ·
Los mantenedores suelen responder en 2 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Los mantenedores suelen responder en 2 días
-
code-health feature/sync OS/Android QA/Test-Plan-Specified QA/Yes
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
brave/brave-browser#60327 ·
Los mantenedores suelen responder en 1 día
-
Type: Bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
it-at-m/raumreservierung#383 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
aws/context-ontology-accelerator#325 ·
Los mantenedores suelen responder en 1 día