本文整理汇总了Java中org.apache.pdfbox.pdmodel.edit.PDPageContentStream.appendRawCommands方法的典型用法代码示例。如果您正苦于以下问题:Java PDPageContentStream.appendRawCommands方法的具体用法?Java PDPageContentStream.appendRawCommands怎么用?Java PDPageContentStream.appendRawCommands使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.pdfbox.pdmodel.edit.PDPageContentStream
的用法示例。
在下文中一共展示了PDPageContentStream.appendRawCommands方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: overlayWithDarkenBlendMode
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
void overlayWithDarkenBlendMode(PDDocument document, PDDocument overlay) throws IOException
{
PDXObjectForm xobject = importAsXObject(document, (PDPage) overlay.getDocumentCatalog().getAllPages().get(0));
PDExtendedGraphicsState darken = new PDExtendedGraphicsState();
darken.getCOSDictionary().setName("BM", "Darken");
List<PDPage> pages = document.getDocumentCatalog().getAllPages();
for (PDPage page: pages)
{
Map<String, PDExtendedGraphicsState> states = page.getResources().getGraphicsStates();
if (states == null)
states = new HashMap<String, PDExtendedGraphicsState>();
String darkenKey = MapUtil.getNextUniqueKey(states, "Dkn");
states.put(darkenKey, darken);
page.getResources().setGraphicsStates(states);
PDPageContentStream stream = new PDPageContentStream(document, page, true, false, true);
stream.appendRawCommands(String.format("/%s gs ", darkenKey));
stream.drawXObject(xobject, 0, 0, 1, 1);
stream.close();
}
}
示例2: testDrawEuro
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/22260344/pdfbox-encode-symbol-currency-euro">
* PdfBox encode symbol currency euro
* </a>
* <p>
* Three ways of trying to draw a '�' symbol, the first one fails.
* </p>
*/
@Test
public void testDrawEuro() throws IOException, COSVisitorException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contents = new PDPageContentStream(document, page);
PDFont font = PDType1Font.HELVETICA_BOLD;
contents.beginText();
contents.setFont(font, 18);
contents.moveTextPositionByAmount(30, 600);
contents.drawString("�");
contents.moveTextPositionByAmount(0, -30);
contents.drawString(String.valueOf(Character.toChars(EncodingManager.INSTANCE.getEncoding(COSName.WIN_ANSI_ENCODING).getCode("Euro"))));
contents.moveTextPositionByAmount(0, -30);
byte[] commands = "(x) Tj ".getBytes();
commands[1] = (byte) 128;
contents.appendRawCommands(commands);
contents.endText();
contents.close();
document.save(new File(RESULT_FOLDER, "Euro.pdf"));
document.close();
}
示例3: testDrawTmSignCustomDraw
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
@Test
public void testDrawTmSignCustomDraw() throws IOException, COSVisitorException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contents = new PDPageContentStream(document, page);
PDFont font = PDType1Font.HELVETICA_BOLD;
contents.beginText();
contents.setFont(font, 18);
contents.moveTextPositionByAmount(30, 600);
contents.drawString("90000039-PREDISOL � C YELLOW 13 SNDOT");
byte[] commands = "(x) Tj ".getBytes();
commands[1] = (byte) 0231;
contents.appendRawCommands(commands);
contents.drawString("M");
contents.endText();
contents.close();
document.save(new File(RESULT_FOLDER, "TM_customDraw.pdf"));
document.close();
}
示例4: testDrawTmSignLetters
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
@Test
public void testDrawTmSignLetters() throws IOException, COSVisitorException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream contents = new PDPageContentStream(document, page);
PDFont font = PDType1Font.HELVETICA_BOLD;
contents.beginText();
contents.setFont(font, 18);
contents.moveTextPositionByAmount(30, 600);
contents.drawString("90000039-PREDISOL � C YELLOW 13 SNDOT");
contents.appendRawCommands("\n6 Ts\n".getBytes());
contents.setFont(font, 10);
contents.drawString("TM");
contents.appendRawCommands("\n0 Ts\n".getBytes());
contents.setFont(font, 18);
contents.drawString("M");
contents.endText();
contents.close();
document.save(new File(RESULT_FOLDER, "TM_letters.pdf"));
document.close();
}
示例5: overlayWithDarkenBlendMode
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
public static void overlayWithDarkenBlendMode(PDDocument document, PDDocument overlay) throws IOException
{
PDXObjectForm xobject = importAsXObject(document, (PDPage) overlay.getDocumentCatalog().getAllPages().get(0));
PDExtendedGraphicsState darken = new PDExtendedGraphicsState();
darken.getCOSDictionary().setName("BM", "Darken");
List<PDPage> pages = document.getDocumentCatalog().getAllPages();
for (PDPage page: pages)
{
if (page.getResources() == null) {
page.setResources(page.findResources());
}
if (page.getResources() != null) {
Map<String, PDExtendedGraphicsState> states = page.getResources().getGraphicsStates();
if (states == null) {
states = new HashMap<String, PDExtendedGraphicsState>();
}
String darkenKey = MapUtil.getNextUniqueKey(states, "Dkn");
states.put(darkenKey, darken);
page.getResources().setGraphicsStates(states);
PDPageContentStream stream = new PDPageContentStream(document, page, true, false, true);
stream.appendRawCommands(String.format("/%s gs ", darkenKey));
stream.drawXObject(xobject, 0, 0, 1, 1);
stream.close();
}
}
}
示例6: testTransparentTextLikeTilman
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/39998390/how-to-create-transparent-text-in-pdfbox-or-add-opacity-to-the-text-with-the-hel">
* How to create Transparent text in pdfBOX or add opacity to the text with the help of pdfBOX?
* </a>
* <p>
* Indeed, this code does not produce transparency... but look at
* {@link #testTransparentTextLikeTilmanImproved()}.
* </p>
*/
@Test
public void testTransparentTextLikeTilman() throws IOException, COSVisitorException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream cs = new PDPageContentStream(document, page);
PDExtendedGraphicsState gs1 = new PDExtendedGraphicsState();
gs1.setNonStrokingAlphaConstant(1f);
PDExtendedGraphicsState gs2 = new PDExtendedGraphicsState();
gs2.setNonStrokingAlphaConstant(0.2f);
Map<String, PDExtendedGraphicsState> graphicsStatesMap = page.getResources().getGraphicsStates();
if (graphicsStatesMap == null)
{
graphicsStatesMap = new HashMap<String, PDExtendedGraphicsState>();
}
graphicsStatesMap.put("gs1", gs1);
graphicsStatesMap.put("gs2", gs2);
page.getResources().setGraphicsStates(graphicsStatesMap);
cs.setFont(PDType1Font.HELVETICA_BOLD, 60);
cs.setNonStrokingColor(0, 0, 0);
cs.beginText();
cs.appendRawCommands("/gs1 gs\n");
cs.moveTextPositionByAmount(50, 600);
cs.drawString("Apache PDFBox 1");
cs.appendRawCommands("/gs2 gs\n");
cs.moveTextPositionByAmount(20, 20);
cs.drawString("Apache PDFBox 2");
cs.endText();
cs.close();
cs.close();
document.save(new File(RESULT_FOLDER, "transparentTextLikeTilman.pdf"));
document.close();
}
示例7: testTransparentTextLikeTilmanImproved
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/39998390/how-to-create-transparent-text-in-pdfbox-or-add-opacity-to-the-text-with-the-hel">
* How to create Transparent text in pdfBOX or add opacity to the text with the help of pdfBOX?
* </a>
* <p>
* This code (which parallels Tilman's own improved code) does produce transparency
* in contrast to {@link #testTransparentTextLikeTilman()}.
* </p>
*/
@Test
public void testTransparentTextLikeTilmanImproved() throws IOException, COSVisitorException
{
PDDocument document = new PDDocument();
PDPage page = new PDPage();
document.addPage(page);
PDPageContentStream cs = new PDPageContentStream(document, page);
PDExtendedGraphicsState gs1 = new PDExtendedGraphicsState();
gs1.setNonStrokingAlphaConstant(1f);
PDExtendedGraphicsState gs2 = new PDExtendedGraphicsState();
gs2.setNonStrokingAlphaConstant(0.2f);
Map<String, PDExtendedGraphicsState> graphicsStatesMap = page.getResources().getGraphicsStates();
if (graphicsStatesMap == null)
{
graphicsStatesMap = new HashMap<String, PDExtendedGraphicsState>();
}
graphicsStatesMap.put("gs1", gs1);
graphicsStatesMap.put("gs2", gs2);
page.getResources().setGraphicsStates(graphicsStatesMap);
cs.setFont(PDType1Font.HELVETICA_BOLD, 60);
cs.setNonStrokingColor(0, 0, 0);
cs.appendRawCommands("/gs1 gs\n");
cs.setNonStrokingColor(Color.green);
cs.beginText();
cs.moveTextPositionByAmount(50, 600);
cs.drawString("Apache PDFBox 1");
cs.endText();
cs.appendRawCommands("/gs2 gs\n");
cs.setNonStrokingColor(Color.red);
cs.beginText();
cs.moveTextPositionByAmount(70, 620);
cs.drawString("Apache PDFBox 2");
cs.endText();
cs.close();
cs.close();
document.save(new File(RESULT_FOLDER, "transparentTextLikeTilmanImproved.pdf"));
document.close();
}
示例8: fillTemplate
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
public PDDocument fillTemplate(List<String> macs, List<String> ssids) throws IOException {
PDDocument cert = new PDDocument();
for (int i = 0; i < macs.size(); i++){
String mac = macs.get(i);
String ssid = ssids.get(i);
PDPage page = new PDPage(LETTER_LANDSCAPE);
//page.setRotation(90);
//page.se
cert.addPage(page);
PDPageContentStream stream = new PDPageContentStream(cert, page, false, false);
// TODO - Make sure that we can't cache these somehow.
PDTrueTypeFont ssidFont = loadFontResource(cert, SSID_FONT_NAME);
PDTrueTypeFont macFont = loadFontResource(cert, MAC_FONT_NAME);
stream.beginText();
stream.setFont( ssidFont, SSID_FONT_SIZE );
stream.moveTextPositionByAmount( 205, 203 );
String ssidStr = String.format(PREFERRED_NETWORK_INTRO, ssid);
Paragraph p = new Paragraph(ssidFont,SSID_FONT_SIZE, 385, ssidStr);
Iterator<String> it = p.getLines().iterator();
stream.appendRawCommands(
ssidFont.getFontDescriptor().getFontBoundingBox().getHeight() / 1000 * SSID_FONT_SIZE
+ " TL\n");
while (it.hasNext()){
stream.drawString(it.next());
if (it.hasNext()) {
stream.appendRawCommands("T*\n");
}
}
stream.endText();
stream.beginText();
stream.setFont(macFont, MAC_FONT_SIZE);
float macWidth = macFont.getStringWidth(mac) / 1000 * MAC_FONT_SIZE;
float x = (page.getMediaBox().getWidth() - macWidth) / 2f;
stream.moveTextPositionByAmount( x, 300 );
stream.drawString( mac );
stream.endText();
// Make sure that the content stream is closed:
stream.close();
}
Overlay overlay = new Overlay();
PDDocument endDoc = overlay.overlay(m_template, cert);
return endDoc;
}
示例9: addWatermark
import org.apache.pdfbox.pdmodel.edit.PDPageContentStream; //导入方法依赖的package包/类
@Override
public void addWatermark(final PDDocument doc, final PDPage page, final Color color,
final String text, final WatermarkPosition watermarkPosition) throws IOException,
WatermarkOutOfLengthException {
if (doc != null && page != null && color != null && StringUtils.isNotBlank(text)
&& watermarkPosition != null) {
// Attributes are extrated from the watermarkPosition argument.
Double rotationAngle = 0D;
Double rotationTX = 0D;
Double rotationTY = 0D;
Integer maxLength = 0;
if (page.getMediaBox().getHeight() > page.getMediaBox().getWidth()) {
// Page is portrait
rotationAngle = watermarkPosition.getRotationAnglePortrait();
rotationTX = watermarkPosition.getRotationTXPortrait();
rotationTY = watermarkPosition.getRotationTYPortrait();
maxLength = watermarkPosition.getMaxLengthPortrait();
} else {
// Page is landscape
rotationAngle = watermarkPosition.getRotationAngleLandscape();
rotationTX = watermarkPosition.getRotationTXLandscape();
rotationTY = watermarkPosition.getRotationTYLandscape();
maxLength = watermarkPosition.getMaxLengthLandscape();
}
// In case text is too large, an exception is thrown.
if (text.length() > maxLength) {
throw new WatermarkOutOfLengthException(
Constants.WATERMARK_OUT_OF_LENGTH_EXCEPTION_MESSAGE);
}
final PDPageContentStream contentStream = new PDPageContentStream(doc, page, true, true);
contentStream.appendRawCommands("/TransparentState gs\n");
contentStream.setNonStrokingColor(color);
contentStream.beginText();
contentStream.setFont(PDType1Font.HELVETICA, 70);
contentStream.setTextRotation(rotationAngle, rotationTX, rotationTY);
// Text is centered
final Integer size = (maxLength * 2) - text.length();
final String centeredText = StringUtils.center(text, size);
contentStream.drawString(centeredText);
contentStream.endText();
contentStream.close();
}
}