Skip to content

Instantly share code, notes, and snippets.

@OmidNejadabbasi
Last active October 12, 2020 05:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save OmidNejadabbasi/38dcf86eb19ced7abb837028c88d4a47 to your computer and use it in GitHub Desktop.
Save OmidNejadabbasi/38dcf86eb19ced7abb837028c88d4a47 to your computer and use it in GitHub Desktop.
import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.font.PDFont;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import org.apache.pdfbox.pdmodel.graphics.xobject.PDXObjectImage;
public class Main {
public static void main(String[] args) throws IOException {
PDDocument pdDocument = new PDDocument();
PDPage page1 = new PDPage(PDRectangle.A4);
pdDocument.addPage(page1);
String text="Hello World!";
PDFont font=PDType1Font.TIMES_ROMAN;
float fontSize = 48f;
float pageHeight = page1.getMediaBox().getUpperRightY();
float pageWidth = page1.getMediaBox().getUpperRightX();
float textWidth=font.getStringWidth(text)/1000*(fontSize);
float textX = (pageWidth/2) - (textWidth/2);
float textY = (pageHeight/2) - (fontSize/2);
System.out.println(font.getStringWidth("Q"));
PDPageContentStream contentStream=new PDPageContentStream(pdDocument, page1);
contentStream.beginText();
contentStream.setFont(font, fontSize);
contentStream.newLineAtOffset(textX, textY);
contentStream.showText(text);
contentStream.endText();
PDImageXObject javaLogo=PDImageXObject.createFromFile(("java.png"), pdDocument);
float imgSquareSize=200;
contentStream.drawImage(javaLogo, (pageWidth/2) - (imgSquareSize/2), textY-imgSquareSize,imgSquareSize, imgSquareSize);
contentStream.close();
pdDocument.save("new.pdf");
pdDocument.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment