Skip to content

Instantly share code, notes, and snippets.

@vandeseer
vandeseer / pom.xml
Created December 4, 2016 17:21
Maven build assembly with dependencies included
<!-- mvn clean compile assembly:single -->
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
@vandeseer
vandeseer / PDFBoxFontEncoding.java
Created April 12, 2019 08:30
Minimal example for creating an IllegalArgumentException because symbol is not available in font
package easytaaable;
import static org.apache.pdfbox.pdmodel.font.PDType1Font.SYMBOL;
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;
@vandeseer
vandeseer / PerfTest.java
Created August 3, 2019 06:31
Performance Test for table creation with easytable
@Test
public void perfTest2() throws IOException {
String outputFileName = "perfTest2.pdf";
final PDDocument document = new PDDocument();
RepeatedHeaderTableDrawer drawer = RepeatedHeaderTableDrawer.builder()
.table(create())
.startX(30)
@vandeseer
vandeseer / PerfTest2.java
Created August 5, 2019 13:04
Another performance test for creating PDF documents with tables using easytable
public void perfTest4() throws IOException {
String outputFileName = "perfTest4.pdf";
final PDDocument document = new PDDocument();
java.util.List<Object[]> dataList = new ArrayList<>();
for (int i = 0; i < 5000; i++) {
dataList.add(new Object[]{"Whisky", 134.0, 145.0});
dataList.add(new Object[]{"Beer", 768.0, 677.0});
@vandeseer
vandeseer / AdditionalPropertiesSerializer.java
Created August 9, 2019 09:02
A custom Jackson serializer for "additionalProperties" (OpenAPI)
public class AdditionalPropertiesSerializer extends StdSerializer<HashMap<String, Object>> {
private static final Logger LOGGER = getLogger();
public AdditionalPropertiesSerializer(Class<HashMap<String, Object>> clazz) {
super(clazz);
}
@Override
public void serialize(HashMap<String, Object> classExtendedFromHashMap, JsonGenerator jsonGenerator, SerializerProvider provider) throws IOException {
@vandeseer
vandeseer / EasytableIssue59.java
Last active May 11, 2023 11:20
Adding a table to every page of a document
package org.vandeseer.integrationtest.custom;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
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.PDType1Font;
import org.vandeseer.easytable.TableDrawer;
@vandeseer
vandeseer / EasytableIssue60.java
Created February 6, 2020 17:03
Using easytable to draw rectangles within cells
package org.vandeseer.integrationtest.custom;
import lombok.Getter;
import lombok.SneakyThrows;
import lombok.experimental.SuperBuilder;
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.vandeseer.easytable.TableDrawer;
@vandeseer
vandeseer / EasytableTableWithinTable.java
Created February 6, 2020 18:11
Illustrates composing of tables
package org.vandeseer.integrationtest.custom;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
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.vandeseer.easytable.TableDrawer;
import org.vandeseer.easytable.drawing.Drawer;
@vandeseer
vandeseer / EasytableIssue68.java
Created February 21, 2020 15:03
Easytable Artificially Bold Text
package org.vandeseer.integrationtest.custom;
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.vandeseer.easytable.TableDrawer;
import org.vandeseer.easytable.drawing.DrawingContext;
import org.vandeseer.easytable.drawing.PositionedStyledText;
import org.vandeseer.easytable.drawing.cell.TextCellDrawer;
@vandeseer
vandeseer / EasytableIssue70.java
Created February 26, 2020 21:34
Customized RepeatedHeaderTableDrawer with configurable amount of rows to repeat
package org.vandeseer.integrationtest.custom;
import lombok.experimental.SuperBuilder;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.vandeseer.easytable.TableDrawer;
import java.awt.geom.Point2D;
import java.io.IOException;
import java.util.function.Supplier;