本文整理汇总了Java中org.apache.pdfbox.pdmodel.PDPageContentStream.showText方法的典型用法代码示例。如果您正苦于以下问题:Java PDPageContentStream.showText方法的具体用法?Java PDPageContentStream.showText怎么用?Java PDPageContentStream.showText使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.pdfbox.pdmodel.PDPageContentStream
的用法示例。
在下文中一共展示了PDPageContentStream.showText方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: createRingManagerDocument
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
@Test
public void createRingManagerDocument() throws Exception {
final PDDocument document = new PDDocument();
final PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
final float startY = page.getMediaBox().getHeight() - 150;
final int startX = 56;
final PDPageContentStream contentStream = new PDPageContentStream(document, page);
Table table = getRingManagerTable();
(new TableDrawer(contentStream, table, startX, startY)).draw();
contentStream.setFont(PDType1Font.HELVETICA, 8.0f);
contentStream.beginText();
contentStream.newLineAtOffset(startX, startY - (table.getHeight() + 22));
contentStream.showText("Dieser Kampf muss der WB nicht entsprechen, da als Sparringskampf angesetzt.");
contentStream.endText();
contentStream.close();
document.save("target/ringmanager.pdf");
document.close();
}
示例2: addHeaderPJ
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
/**
* @param textHeader
* @param font
* @param PAGE_SIZE_A4
* @param contentStream
* @return ajoute un header a la piece
* @throws IOException
*/
private Float addHeaderPJ(final String textHeader, final PDFont font, final PDRectangle PAGE_SIZE_A4,
final PDPageContentStream contentStream) throws IOException {
Float marginTop = 0f;
// si font Ok, on ajoute le text
if (font != null && ConstanteUtils.DOSSIER_ADD_HEADER_IMG) {
// calcul de la largeur et hauteur du txt
Float titleWidth = font.getStringWidth(textHeader) / 1000 * ConstanteUtils.DOSSIER_FONT_SIZE;
Float titleHeight = font.getFontDescriptor().getFontBoundingBox().getHeight() / 1000
* ConstanteUtils.DOSSIER_FONT_SIZE;
// calcul de la marge du haut : hauteur du text + marge
marginTop = titleHeight + ConstanteUtils.DOSSIER_MARGIN;
// calcul de la position du text
Float xText = (PAGE_SIZE_A4.getWidth() - 2 * ConstanteUtils.DOSSIER_MARGIN - titleWidth) / 2;
Float yText = PAGE_SIZE_A4.getHeight() - marginTop;
// ecriture du text
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA_BOLD, ConstanteUtils.DOSSIER_FONT_SIZE);
contentStream.newLineAtOffset(xText, yText);
contentStream.showText(textHeader);
contentStream.endText();
}
return marginTop;
}
示例3: showTextOnStream
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
private void showTextOnStream(IFontTextDrawerEnv env, PDPageContentStream contentStream, Font attributeFont,
PDFont font, boolean isStrikeThrough, boolean isUnderline, boolean isLigatures, String text)
throws IOException {
if (isStrikeThrough || isUnderline) {
// noinspection unused
float stringWidth = font.getStringWidth(text);
// noinspection unused
LineMetrics lineMetrics = attributeFont.getLineMetrics(text, env.getFontRenderContext());
/*
* TODO: We can not draw that yet, we must do that later. While in textmode its
* not possible to draw lines...
*/
}
// noinspection StatementWithEmptyBody
if (isLigatures) {
/*
* No idea how to map this ...
*/
}
contentStream.showText(text);
}
示例4: generateBillHeader
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
private void generateBillHeader(PDPage firstPage, PDPageContentStream contentStream)
throws IOException {
// Add header text
PDFont currentFont;
int currentFontSize;
String headerLine1 = "Git Rekt Resort";
String headerLine2 = "Customer Bill";
contentStream.setLeading(10);
currentFont = BOLD;
currentFontSize = 14;
contentStream.setFont(currentFont, currentFontSize);
contentStream.beginText();
float offsetX = getCenteredTextXPos(firstPage, headerLine1, currentFont, currentFontSize);
contentStream.newLineAtOffset(offsetX, 750f);
contentStream.showText(headerLine1);
currentFont = PDType1Font.COURIER_BOLD;
currentFontSize = 12;
contentStream.setFont(currentFont, currentFontSize);
float offsetX2 = getCenteredTextXPos(firstPage, headerLine2, currentFont, currentFontSize);
contentStream.newLineAtOffset(-offsetX + offsetX2, -5f);
contentStream.newLine();
contentStream.showText(headerLine2);
contentStream.endText();
}
示例5: test001
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
@Test
public void test001() throws IOException {
//E:\Repository\Git\melon\melon-sample-pdf\src\main\resources\HTTP权威指南.pdf
System.out.println("Hello World!");
PDDocument pdDocument = new PDDocument();
PDPage pdPage = new PDPage();
pdDocument.addPage(pdPage);
PDFont pdFont = PDType1Font.HELVETICA_BOLD;
PDPageContentStream contentStream = new PDPageContentStream(pdDocument, pdPage);
contentStream.beginText();
contentStream.setFont(pdFont, 14);
contentStream.newLineAtOffset(100, 700);
contentStream.showText("Hello World");
contentStream.endText();
contentStream.close();
String directory = PdfDemo.class.getClassLoader().getResource("").getPath();
String fileName = "text.pdf";
pdDocument.save(directory + fileName);
pdDocument.close();
}
示例6: addWrappedParagraph
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
@Override
public void addWrappedParagraph(String text, PDFont font, float fontSize, Color textColor, TextAlignment align, float xCoordinate, float topYCoordinate, float width, PDPage page, PDPageContentStream contentStream) throws IOException {
Paragraph paragraph = new Paragraph(text, width, font, fontSize);
final float lineSpacing = 1.2f * fontSize;
PDRectangle region = page.getMediaBox();
contentStream.beginText();
contentStream.setFont(font, fontSize);
contentStream.setNonStrokingColor(textColor);
for (String line : paragraph.getLines()) {
if (align == TextAlignment.CENTER) {
float stringWidth = PdfBoxHandler.targetedStringWidth(line, font, fontSize);
float centerXPos = (region.getWidth() - stringWidth) / 2f;
contentStream.setTextTranslation(centerXPos, region.getHeight() - topYCoordinate);
} else {
contentStream.setTextTranslation(xCoordinate, region.getHeight() - topYCoordinate);
}
contentStream.showText(line);
topYCoordinate += lineSpacing;
}
contentStream.endText();
resetChangedColorToDefault(contentStream);
}
示例7: drawText
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
public void drawText(PDPage page, PDPageContentStream contentStream, String _text) throws IOException {
String text = _text;
// contentStream.beginText();
// contentStream.setFont(getDefaultFont(), 12);
// contentStream.newLine();
// contentStream.newLineAtOffset(100, 700);
// contentStream.showText(this.text);
// contentStream.endText();
float fontSize = 25;
float leading = 1.5f * fontSize;
PDRectangle mediabox = page.getMediaBox();
float margin = 72;
float width = mediabox.getWidth() - 2 * margin;
float startX = mediabox.getLowerLeftX() + margin;
float startY = mediabox.getUpperRightY() - margin;
int lastSpace = -1;
while (text.length() > 0) {
int spaceIndex = text.indexOf(' ', lastSpace + 1);//text.indexOf("\n", lastSpace + 1);
if (spaceIndex < 0) {
spaceIndex = text.length();
}
String subString = text.substring(0, spaceIndex);
float size = fontSize * getDefaultFont().getStringWidth(subString) / 1000;
LOGGER.debug("'{}' - {} of {}\n", subString, size, width);
if (size > width) {
if (lastSpace < 0)
lastSpace = spaceIndex;
subString = text.substring(0, lastSpace);
lines.add(subString);
text = text.substring(lastSpace).trim();
LOGGER.debug("'{}' is line\n", subString);
lastSpace = -1;
} else if (spaceIndex == text.length()) {
lines.add(text);
LOGGER.debug("'{}' is line\n", text);
text = "";
} else {
lastSpace = spaceIndex;
}
}
contentStream.beginText();
contentStream.setFont(getDefaultFont(), fontSize);
contentStream.newLineAtOffset(startX, startY);
for (String line : lines) {
contentStream.showText(line);
contentStream.newLineAtOffset(0, -leading);
}
contentStream.endText();
}
示例8: addTextAtOffset
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
@Override
public void addTextAtOffset(String text, PDFont font, float fontSize, Color textColor, float xCoordinate, float yCoordinate, PDPageContentStream contentStream) throws IOException {
if (text.isEmpty()) {
log.warn("The inputs are empty string start from the position: ".concat(xCoordinate + ", " + yCoordinate));
}
if (textColor == null) {
textColor = Color.BLACK;
}
contentStream.setNonStrokingColor(textColor);
contentStream.setFont(font, fontSize);
contentStream.beginText();
contentStream.newLineAtOffset(xCoordinate, yCoordinate);
contentStream.showText(text);
contentStream.endText();
// Reset changed color
resetChangedColorToDefault(contentStream);
}
示例9: addWrappedParagraphByLineBreaks
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
@Override
public void addWrappedParagraphByLineBreaks(String content, PDFont font, float fontSize, Color textColor, float yCoordinate, float leftRightMargin, PDPage page, PDPageContentStream contentStream) throws IOException {
final float lineSpacing = 1.4f * fontSize;
float width = page.getMediaBox().getWidth() - 2 * leftRightMargin;
float startX = page.getMediaBox().getLowerLeftX() + leftRightMargin;
List<String> lines = calculateLinesToWrap(content, font, fontSize, width);
contentStream.beginText();
contentStream.setFont(font, fontSize);
contentStream.setNonStrokingColor(textColor);
contentStream.newLineAtOffset(startX, yCoordinate);
for (String line : lines) {
contentStream.showText(line.replaceAll(PdfBoxHandler.TAB_REGEX, PdfBoxHandler.SPACE_STRING));
contentStream.newLineAtOffset(0, -lineSpacing);
}
contentStream.endText();
// Reset changed color
resetChangedColorToDefault(contentStream);
}
示例10: fillTextToTable
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
private void fillTextToTable(PDPageContentStream contentStream, TableAttribute tableAttribute, String[][] tableContent) throws IOException {
//Set text font and font size
contentStream.setFont(tableAttribute.getContentFont(), tableAttribute.getContentFontSize());
final float cellMargin = tableAttribute.getCellMargin();
// Define to start drawing content at horizontal position
float nextTextX = tableAttribute.getXCoordinate() + cellMargin;
// Define to start drawing content at vertical position
float nextTextY = calculateDrawPositionInVertical(tableAttribute);
for (String[] aContent : tableContent) {
int index = 0;
for (String text : aContent) {
contentStream.beginText();
contentStream.newLineAtOffset(nextTextX, nextTextY);
contentStream.showText(text != null ? text : "");
contentStream.endText();
nextTextX += tableAttribute.getColumns().get(index).getCellWidth();
index++;
}
// Update new position cursor after writing the content for one row
nextTextY -= tableAttribute.getRowHeight();
nextTextX = tableAttribute.getXCoordinate() + cellMargin;
}
}
示例11: prepareSmallPdf
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
/**
* @see #testJoinSmallAndBig()
*/
PDDocument prepareSmallPdf() throws IOException {
PDDocument document = new PDDocument();
PDPage page = new PDPage(new PDRectangle(72, 72));
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.setNonStrokingColor(Color.YELLOW);
contentStream.addRect(0, 0, 72, 72);
contentStream.fill();
contentStream.setNonStrokingColor(Color.BLACK);
PDFont font = PDFontFactory.createDefaultFont();
contentStream.beginText();
contentStream.setFont(font, 18);
contentStream.newLineAtOffset(2, 54);
contentStream.showText("small");
contentStream.newLineAtOffset(0, -48);
contentStream.showText("page");
contentStream.endText();
contentStream.close();
return document;
}
示例12: prepareBiggerPdf
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
/**
* @see #testJoinSmallAndBig()
*/
PDDocument prepareBiggerPdf() throws IOException {
PDDocument document = new PDDocument();
PDPage page = new PDPage(PDRectangle.A5);
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
contentStream.setNonStrokingColor(Color.GREEN);
contentStream.addRect(0, 0, PDRectangle.A5.getWidth(), PDRectangle.A5.getHeight());
contentStream.fill();
contentStream.setNonStrokingColor(Color.BLACK);
PDFont font = PDFontFactory.createDefaultFont();
contentStream.beginText();
contentStream.setFont(font, 18);
contentStream.newLineAtOffset(2, PDRectangle.A5.getHeight() - 24);
contentStream.showText("This is the Bigger page");
contentStream.newLineAtOffset(0, -48);
contentStream.showText("BIGGER!");
contentStream.endText();
contentStream.close();
return document;
}
示例13: exportGraphic
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
@SuppressWarnings("SpellCheckingInspection")
void exportGraphic(String dir, String name, GraphicsExporter exporter) {
try {
PDDocument document = new PDDocument();
PDFont pdArial = PDFontFactory.createDefaultFont();
File parentDir = new File("target/test/" + dir);
// noinspection ResultOfMethodCallIgnored
parentDir.mkdirs();
BufferedImage image = new BufferedImage(400, 400, BufferedImage.TYPE_4BYTE_ABGR);
Graphics2D imageGraphics = image.createGraphics();
exporter.draw(imageGraphics);
imageGraphics.dispose();
ImageIO.write(image, "PNG", new File(parentDir, name + ".png"));
for (Mode m : Mode.values()) {
PDPage page = new PDPage(PDRectangle.A4);
document.addPage(page);
PDPageContentStream contentStream = new PDPageContentStream(document, page);
PdfBoxGraphics2D pdfBoxGraphics2D = new PdfBoxGraphics2D(document, 400, 400);
PdfBoxGraphics2DFontTextDrawer fontTextDrawer = null;
contentStream.beginText();
contentStream.setStrokingColor(0, 0, 0);
contentStream.setNonStrokingColor(0, 0, 0);
contentStream.setFont(PDType1Font.HELVETICA_BOLD, 15);
contentStream.setTextMatrix(Matrix.getTranslateInstance(10, 800));
contentStream.showText("Mode " + m);
contentStream.endText();
switch (m) {
case FontTextIfPossible:
fontTextDrawer = new PdfBoxGraphics2DFontTextDrawer();
fontTextDrawer.registerFont(
new File("src/test/resources/de/rototor/pdfbox/graphics2d/DejaVuSerifCondensed.ttf"));
break;
case DefaultFontText: {
fontTextDrawer = new PdfBoxGraphics2DFontTextDrawerDefaultFonts();
fontTextDrawer.registerFont(
new File("src/test/resources/de/rototor/pdfbox/graphics2d/DejaVuSerifCondensed.ttf"));
break;
}
case ForceFontText:
fontTextDrawer = new PdfBoxGraphics2DFontTextForcedDrawer();
fontTextDrawer.registerFont(
PdfBoxGraphics2DTestBase.class.getResourceAsStream("DejaVuSerifCondensed.ttf"));
fontTextDrawer.registerFont("Arial", pdArial);
break;
case DefaultVectorized:
default:
break;
}
if (fontTextDrawer != null) {
pdfBoxGraphics2D.setFontTextDrawer(fontTextDrawer);
}
exporter.draw(pdfBoxGraphics2D);
pdfBoxGraphics2D.dispose();
PDFormXObject appearanceStream = pdfBoxGraphics2D.getXFormObject();
Matrix matrix = new Matrix();
matrix.translate(0, 20);
contentStream.transform(matrix);
contentStream.drawForm(appearanceStream);
matrix.scale(1.5f, 1.5f);
matrix.translate(0, 100);
contentStream.transform(matrix);
contentStream.drawForm(appearanceStream);
contentStream.close();
}
document.save(new File(parentDir, name + ".pdf"));
document.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
示例14: getBillAsPdf
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
public PDDocument getBillAsPdf() throws IOException {
// Add blank page to document
PDPage firstPage = new PDPage();
document.addPage(firstPage);
PDPageContentStream contentStream = new PDPageContentStream(document, firstPage);
generateBillHeader(firstPage, contentStream);
generateBillInfoText(firstPage, contentStream);
contentStream.beginText();
contentStream.newLineAtOffset(60f, 640f);
// Add the column line item header line
contentStream.setFont(PDType1Font.COURIER_BOLD, NORMAL_FONT_SIZE);
contentStream.newLine();
contentStream.showText(lineItemHeader);
// Add bill line items
contentStream.setFont(NORMAL_FONT, NORMAL_FONT_SIZE);
for(String lineItem : lineItems) {
contentStream.newLine();
contentStream.showText(lineItem);
}
// Display the bill total at the end
contentStream.newLine();
String billTotalLine = getBillTotalLine();
contentStream.setFont(PDType1Font.COURIER_BOLD, NORMAL_FONT_SIZE);
contentStream.newLine();
contentStream.showText(billTotalLine);
// Display important bill information
contentStream.newLine();
contentStream.newLine();
contentStream.showText("WARNING: Failure to pay bill may result in broken legs.");
contentStream.endText();
contentStream.close();
return document;
}
示例15: drawStringRotatedWithResizing
import org.apache.pdfbox.pdmodel.PDPageContentStream; //导入方法依赖的package包/类
/**
* Draws the given string, optionally supports scaling to fit.
* @param x Left side of text, or center point of text if centered (1/72 inch)
* @param y Bottom of text, in points (1/72 inch)
* @param text Text to draw
* @param optOrig Resize Options
* @throws IOException Error generating PDF
*/
void drawStringRotatedWithResizing(PDPageContentStream stream, float x, float y, int width, int height, String text, ResizeOptions optOrig) throws IOException {
stream.setNonStrokingColor(Color.gray);
PDRectangle boundingBox = new PDRectangle(x, y, width, height);
stream.fillRect(x, y, width, height);
ResizeOptions opt = new ResizeOptions(optOrig);
float textSize = opt.font.getStringWidth(text); // in thousandths of font pt size.
float size = opt.size;
float centeredXPosition = x + (boundingBox.getWidth()/2f);
float stringWidth = opt.font.getStringWidth( text );
float centeredYPosition = y + (boundingBox.getHeight() /2f);
stream.setNonStrokingColor(Color.GREEN);
stream.fillRect(centeredXPosition, centeredYPosition, 3, 3);
Matrix offset = Matrix.getRotateInstance(90 * Math.PI * 0.25,
centeredXPosition, centeredYPosition-(stringWidth/1000/2));
stream.beginText();
stream.setTextMatrix(offset);
stream.setStrokingColor(Color.black);
stream.setNonStrokingColor(Color.black);
stream.setFont(opt.font, size);
stream.showText(text);
stream.endText();
//
// // If text size is greater than maximum width, recalculate the correct font size, based on our restrictions
// if (textSize * (size/1000.0f) > opt.maxTextWidth) {
// size = opt.maxTextWidth * 1000.0f / textSize;
// if (size < opt.minFontSize) {
// // We have utterly failed to fit the text with the minimum font size,
// // So we're forced to use that.
// size = opt.minFontSize;
// }
// }
//
// if (opt.centered) {
// y -= textSize * (size/(2*1000.0f));
// }
////
//// Matrix offset = Matrix.getRotateInstance(i * Math.PI * 0.25,
//// centered XPosition, pageSize.getHeight() - centeredYPosition)
// Matrix offset = new Matrix();
// offset.rotate(Math.toRadians(5));
// offset.translate(100, 100);
// // Actually draw the text
}