本文整理汇总了Java中com.itextpdf.text.pdf.PdfArray类的典型用法代码示例。如果您正苦于以下问题:Java PdfArray类的具体用法?Java PdfArray怎么用?Java PdfArray使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PdfArray类属于com.itextpdf.text.pdf包,在下文中一共展示了PdfArray类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。
示例1: testSwitchOrientation
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/34394199/i-cant-rotate-my-page-from-existing-pdf">
* I can't rotate my page from existing PDF
* </a>
* <p>
* Switching between portrait and landscape like this obviously will cut off some parts of the page.
* </p>
*/
@Test
public void testSwitchOrientation() throws DocumentException, IOException
{
try (InputStream resourceStream = getClass().getResourceAsStream("/mkl/testarea/itext5/extract/n2013.00849449.pdf"))
{
PdfReader reader = new PdfReader(resourceStream);
int n = reader.getNumberOfPages();
PdfDictionary pageDict;
for (int i = 1; i <= n; i++) {
Rectangle rect = reader.getPageSize(i);
Rectangle crop = reader.getCropBox(i);
pageDict = reader.getPageN(i);
pageDict.put(PdfName.MEDIABOX, new PdfArray(new float[] {rect.getBottom(), rect.getLeft(), rect.getTop(), rect.getRight()}));
pageDict.put(PdfName.CROPBOX, new PdfArray(new float[] {crop.getBottom(), crop.getLeft(), crop.getTop(), crop.getRight()}));
}
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(new File(RESULT_FOLDER, "n2013.00849449-switch.pdf")));
stamper.close();
reader.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:29,代码来源:SwitchPageCanvas.java
示例2: extractAttachments
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* These two methods ({@link #extractAttachments(PdfReader, String)} and
* {@link #extractAttachment(PdfReader, File, PdfString, PdfDictionary)})
* essentially are the OP's original code posted in his question. They
* extract files without the folder structure.
*/
public static void extractAttachments(PdfReader reader, String dir) throws IOException
{
File folder = new File(dir);
folder.mkdirs();
PdfDictionary root = reader.getCatalog();
PdfDictionary names = root.getAsDict(PdfName.NAMES);
System.out.println("" + names.getKeys().toString());
PdfDictionary embedded = names.getAsDict(PdfName.EMBEDDEDFILES);
System.out.println("" + embedded.toString());
PdfArray filespecs = embedded.getAsArray(PdfName.NAMES);
//System.out.println(filespecs.getAsString(root1));
for (int i = 0; i < filespecs.size();)
{
extractAttachment(reader, folder, filespecs.getAsString(i++), filespecs.getAsDict(i++));
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:27,代码来源:PortfolioFileExtraction.java
示例3: extractAttachmentsWithFolders
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <p>
* These two methods ({@link #extractAttachmentsWithFolders(PdfReader, String)} and
* {@link #extractAttachment(PdfReader, Map, PdfString, PdfDictionary)}) extend the
* functionality of the OP's original code posted in his question. They extract files
* with the folder structure.
* </p>
* <p>
* The information concerning the portfolio folder structure is retrieved using
* the method {@link #retrieveFolders(PdfReader, File)} and its helper method
* {@link #collectFolders(Map, PdfDictionary, File)}.
* </p>
*/
public static void extractAttachmentsWithFolders(PdfReader reader, String dir) throws IOException, DocumentException
{
File folder = new File(dir);
folder.mkdirs();
Map<Integer, File> folders = retrieveFolders(reader, folder);
PdfDictionary root = reader.getCatalog();
PdfDictionary names = root.getAsDict(PdfName.NAMES);
System.out.println("" + names.getKeys().toString());
PdfDictionary embedded = names.getAsDict(PdfName.EMBEDDEDFILES);
System.out.println("" + embedded.toString());
PdfArray filespecs = embedded.getAsArray(PdfName.NAMES);
for (int i = 0; i < filespecs.size();)
{
extractAttachment(reader, folders, folder, filespecs.getAsString(i++), filespecs.getAsDict(i++));
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:35,代码来源:PortfolioFileExtraction.java
示例4: tiff2Pdf
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
public void tiff2Pdf(File singleTifFile, File pdfFile) {
// based on tiff2pdf from itext toolbox 0.0.2
// (cfr.http://itexttoolbox.sourceforge.net/doku.php?id=download&DokuWiki=
// ecde1bfec0b8cca87dd8c6c042183992)
try {
RandomAccessFileOrArray ra = new RandomAccessFileOrArray(
singleTifFile.getAbsolutePath());
// RandomAccessFileOrArray ra = new
// RandomAccessFileOrArray(tempByteArray);
int comps = TiffImage.getNumberOfPages(ra);
Document document = new Document(PageSize.A4);
float width = PageSize.A4.getWidth();
float height = PageSize.A4.getHeight();
Image img = TiffImage.getTiffImage(ra, 1);
document.setPageSize(PageSize.A4);
PdfWriter writer = PdfWriter.getInstance(document,
new FileOutputStream(pdfFile));
// pdf/a
// from
// http://www.opensubscriber.com/message/[email protected]
// .net/7593470.html
// check that it is really pdf/a:
// http://www.intarsys.de/produkte/pdf-a-live/pdf-a-check-1
// => 2 warnings
// Keine eindeutige ID gefunden
// Kein History-Eintrag vorhanden
writer.setPDFXConformance(PdfWriter.PDFA1B);
document.open();
PdfDictionary outi = new PdfDictionary(PdfName.OUTPUTINTENT);
outi.put(PdfName.OUTPUTCONDITIONIDENTIFIER, new PdfString(
"sRGB IEC61966-2.1"));
outi.put(PdfName.INFO, new PdfString("sRGB IEC61966-2.1"));
outi.put(PdfName.S, PdfName.GTS_PDFA1);
ICC_Profile icc = ICC_Profile.getInstance(Thread.currentThread()
.getContextClassLoader().getResourceAsStream(
"/srgb.profile"));
PdfICCBased ib = new PdfICCBased(icc);
ib.remove(PdfName.ALTERNATE);
outi.put(PdfName.DESTOUTPUTPROFILE, writer.addToBody(ib)
.getIndirectReference());
writer.getExtraCatalog().put(PdfName.OUTPUTINTENTS,
new PdfArray(outi));
PdfContentByte cb = writer.getDirectContent();
for (int c = 0; c < comps; ++c) {
img = TiffImage.getTiffImage(ra, c + 1);
if (img != null) {
document.setPageSize(PageSize.A4);
document.newPage();
img.setAbsolutePosition(0, 0);
img.scaleToFit(width, height);
cb.addImage(img);
logger.debug("Finished page " + (c + 1));
}
}
ra.close();
writer.createXmpMetadata();// pdfa
document.close();
} catch (Throwable e) {
// catch Throwable because we encountere a java.lang.InternalError
// cfr. http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6503430
// probably better to move to later java version for poller
logger.error("Pdf not created", e);
}
}
开发者ID:xenit-eu,项目名称:move2alf,代码行数:75,代码来源:Tiff2Pdf.java
示例5: renderText
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
@Override
public void renderText(TextRenderInfo renderInfo)
{
DocumentFont font =renderInfo.getFont();
PdfDictionary dict = font.getFontDictionary();
PdfDictionary encoding = dict.getAsDict(PdfName.ENCODING);
PdfArray diffs = encoding.getAsArray(PdfName.DIFFERENCES);
;
StringBuilder builder = new StringBuilder();
for (byte b : renderInfo.getPdfString().getBytes())
{
PdfName name = diffs.getAsName((char)b);
String s = name.toString().substring(2);
int i = Integer.parseUnsignedInt(s, 16);
builder.append((char)i);
}
try
{
stringField.set(renderInfo, builder.toString());
}
catch (IllegalArgumentException | IllegalAccessException e)
{
e.printStackTrace();
}
strategy.renderText(renderInfo);
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:29,代码来源:RemappingExtractionFilter.java
示例6: copyLinks
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <p>
* A primitive attempt at copying links from page <code>sourcePage</code>
* of <code>PdfReader reader</code> to page <code>targetPage</code> of
* <code>PdfStamper stamper</code>.
* </p>
* <p>
* This method is meant only for the use case at hand, i.e. copying a link
* to an external URI without expecting any advanced features.
* </p>
*/
void copyLinks(PdfStamper stamper, int targetPage, PdfReader reader, int sourcePage)
{
PdfDictionary sourcePageDict = reader.getPageNRelease(sourcePage);
PdfArray annotations = sourcePageDict.getAsArray(PdfName.ANNOTS);
if (annotations != null && annotations.size() > 0)
{
for (PdfObject annotationObject : annotations)
{
annotationObject = PdfReader.getPdfObject(annotationObject);
if (!annotationObject.isDictionary())
continue;
PdfDictionary annotation = (PdfDictionary) annotationObject;
if (!PdfName.LINK.equals(annotation.getAsName(PdfName.SUBTYPE)))
continue;
PdfArray rectArray = annotation.getAsArray(PdfName.RECT);
if (rectArray == null || rectArray.size() < 4)
continue;
Rectangle rectangle = PdfReader.getNormalizedRectangle(rectArray);
PdfName hightLight = annotation.getAsName(PdfName.H);
if (hightLight == null)
hightLight = PdfAnnotation.HIGHLIGHT_INVERT;
PdfDictionary actionDict = annotation.getAsDict(PdfName.A);
if (actionDict == null || !PdfName.URI.equals(actionDict.getAsName(PdfName.S)))
continue;
PdfString urlPdfString = actionDict.getAsString(PdfName.URI);
if (urlPdfString == null)
continue;
PdfAction action = new PdfAction(urlPdfString.toString());
PdfAnnotation link = PdfAnnotation.createLink(stamper.getWriter(), rectangle, hightLight, action);
stamper.addAnnotation(link, targetPage);
}
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:49,代码来源:InsertPage.java
示例7: show
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
void show(FdfReader fdfReader)
{
PdfDictionary catalog = fdfReader.getCatalog();
catalog = catalog.getAsDict(PdfName.FDF);
Assert.assertNotNull("FDF catalogue is null", catalog);
PdfArray annots = catalog.getAsArray(PdfName.ANNOTS);
Assert.assertNotNull("FDF annotations are null", annots);
System.out.println(annots);
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:10,代码来源:ReadFdf.java
示例8: testWidgetToField
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/31402602/how-to-rename-only-the-first-found-duplicate-acrofield-in-pdf">
* How to rename only the first found duplicate acrofield in pdf?
* </a>
* <br>
* <a href="http://s000.tinyupload.com/index.php?file_id=34970992934525199618">
* test_duplicate_field2.pdf
* </a>
* <p>
* Demonstration of how to transform generate a new field for a widget.
* </p>
*/
@Test
public void testWidgetToField() throws IOException, DocumentException
{
try ( InputStream resource = getClass().getResourceAsStream("test_duplicate_field2.pdf");
OutputStream result = new FileOutputStream(new File(RESULT_FOLDER, "test_duplicate_field2-widgetToField.pdf")) )
{
PdfReader reader = new PdfReader(resource);
PdfDictionary form = reader.getCatalog().getAsDict(PdfName.ACROFORM);
PdfArray fields = form.getAsArray(PdfName.FIELDS);
for (PdfObject object: fields)
{
PdfDictionary field = (PdfDictionary) PdfReader.getPdfObject(object);
if ("Text1".equals(field.getAsString(PdfName.T).toString()))
{
PdfDictionary newField = new PdfDictionary();
PRIndirectReference newFieldRef = reader.addPdfObject(newField);
fields.add(newFieldRef);
newField.putAll(field);
newField.put(PdfName.T, new PdfString("foobar"));
PdfArray newKids = new PdfArray();
newField.put(PdfName.KIDS, newKids);
PdfArray kids = field.getAsArray(PdfName.KIDS);
PdfObject widget = kids.remove(0);
newKids.add(widget);
PdfDictionary widgetDict = (PdfDictionary) PdfReader.getPdfObject(widget);
widgetDict.put(PdfName.PARENT, newFieldRef);
break;
}
}
PdfStamper stamper = new PdfStamper(reader, result);
stamper.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:48,代码来源:SameFieldTwice.java
示例9: testMarkAnnotationsReadOnly
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/37275267/how-to-make-pdf-annotation-as-read-only-using-itext">
* how to make pdf annotation as read only using itext?
* </a>
* <br/>
* test-annotated.pdf <i>simple PDF with sticky note</i>
*
* <p>
* This test shows how to set the read-only flags of all annotations of a document.
* </p>
*/
@Test
public void testMarkAnnotationsReadOnly() throws IOException, DocumentException
{
try ( InputStream resourceStream = getClass().getResourceAsStream("test-annotated.pdf");
OutputStream outputStream = new FileOutputStream(new File(RESULT_FOLDER, "test-annotated-ro.pdf")) )
{
PdfReader reader = new PdfReader(resourceStream);
PdfStamper stamper = new PdfStamper(reader, outputStream);
for (int page = 1; page <= reader.getNumberOfPages(); page++)
{
PdfDictionary pageDictionary = reader.getPageN(page);
PdfArray annotationArray = pageDictionary.getAsArray(PdfName.ANNOTS);
if (annotationArray == null)
continue;
for (PdfObject object : annotationArray)
{
PdfObject directObject = PdfReader.getPdfObject(object);
if (directObject instanceof PdfDictionary)
{
PdfDictionary annotationDictionary = (PdfDictionary) directObject;
PdfNumber flagsNumber = annotationDictionary.getAsNumber(PdfName.F);
int flags = flagsNumber != null ? flagsNumber.intValue() : 0;
flags |= PdfAnnotation.FLAGS_READONLY;
annotationDictionary.put(PdfName.F, new PdfNumber(flags));
}
}
}
stamper.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:44,代码来源:MarkAnnotationReadOnly.java
示例10: testWithStamper
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
@Test
public void testWithStamper() throws DocumentException, IOException
{
InputStream resourceStream = getClass().getResourceAsStream("test.pdf");
try
{
PdfReader reader = new PdfReader(resourceStream);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(new File(RESULT_FOLDER, "test-trimmed-stamper.pdf")));
// Go through all pages
int n = reader.getNumberOfPages();
for (int i = 1; i <= n; i++)
{
Rectangle pageSize = reader.getPageSize(i);
Rectangle rect = getOutputPageSize(pageSize, reader, i);
PdfDictionary page = reader.getPageN(i);
page.put(PdfName.CROPBOX, new PdfArray(new float[]{rect.getLeft(), rect.getBottom(), rect.getRight(), rect.getTop()}));
stamper.markUsed(page);
}
stamper.close();
}
finally
{
if (resourceStream != null)
resourceStream.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:29,代码来源:TestTrimPdfPage.java
示例11: testWithStamperTopBottom
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
@Test
public void testWithStamperTopBottom() throws DocumentException, IOException
{
InputStream resourceStream = getClass().getResourceAsStream("test.pdf");
try
{
PdfReader reader = new PdfReader(resourceStream);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(new File(RESULT_FOLDER, "test-trimmed-stamper-top-bottom.pdf")));
// Go through all pages
int n = reader.getNumberOfPages();
for (int i = 1; i <= n; i++)
{
Rectangle pageSize = reader.getPageSize(i);
Rectangle rect = getOutputPageSize2(pageSize, reader, i);
PdfDictionary page = reader.getPageN(i);
page.put(PdfName.CROPBOX, new PdfArray(new float[]{rect.getLeft(), rect.getBottom(), rect.getRight(), rect.getTop()}));
stamper.markUsed(page);
}
stamper.close();
}
finally
{
if (resourceStream != null)
resourceStream.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:29,代码来源:TestTrimPdfPage.java
示例12: testWithStamperCentered
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
@Test
public void testWithStamperCentered() throws DocumentException, IOException
{
InputStream resourceStream = getClass().getResourceAsStream("test.pdf");
try
{
PdfReader reader = new PdfReader(resourceStream);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(new File(RESULT_FOLDER, "test-trimmed-stamper-centered.pdf")));
// Go through all pages
int n = reader.getNumberOfPages();
for (int i = 1; i <= n; i++)
{
Rectangle pageSize = reader.getPageSize(i);
Rectangle rect = getOutputPageSize3(pageSize, reader, i);
PdfDictionary page = reader.getPageN(i);
page.put(PdfName.CROPBOX, new PdfArray(new float[]{rect.getLeft(), rect.getBottom(), rect.getRight(), rect.getTop()}));
stamper.markUsed(page);
}
stamper.close();
}
finally
{
if (resourceStream != null)
resourceStream.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:29,代码来源:TestTrimPdfPage.java
示例13: testWithStamperExtFinder
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
@Test
public void testWithStamperExtFinder() throws DocumentException, IOException
{
InputStream resourceStream = getClass().getResourceAsStream("test.pdf");
try
{
PdfReader reader = new PdfReader(resourceStream);
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(new File(RESULT_FOLDER, "test-trimmed-stamper-ext.pdf")));
// Go through all pages
int n = reader.getNumberOfPages();
for (int i = 1; i <= n; i++)
{
Rectangle pageSize = reader.getPageSize(i);
Rectangle rect = getOutputPageSize4(pageSize, reader, i);
PdfDictionary page = reader.getPageN(i);
page.put(PdfName.CROPBOX, new PdfArray(new float[]{rect.getLeft(), rect.getBottom(), rect.getRight(), rect.getTop()}));
stamper.markUsed(page);
}
stamper.close();
}
finally
{
if (resourceStream != null)
resourceStream.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:29,代码来源:TestTrimPdfPage.java
示例14: splitIntoHalfPages
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* This methods creates a copy of the source document containing each page twice,
* once with the cropbox limited to the left half page, once to the right one.
*/
void splitIntoHalfPages(InputStream source, File target) throws IOException, DocumentException
{
final PdfReader reader = new PdfReader(source);
try ( OutputStream targetStream = new FileOutputStream(target) )
{
Document document = new Document();
PdfCopy copy = new PdfCopy(document, targetStream);
document.open();
for (int page = 1; page <= reader.getNumberOfPages(); page++)
{
PdfDictionary pageN = reader.getPageN(page);
Rectangle cropBox = reader.getCropBox(page);
PdfArray leftBox = new PdfArray(new float[]{cropBox.getLeft(), cropBox.getBottom(), (cropBox.getLeft() + cropBox.getRight()) / 2.0f, cropBox.getTop()});
PdfArray rightBox = new PdfArray(new float[]{(cropBox.getLeft() + cropBox.getRight()) / 2.0f, cropBox.getBottom(), cropBox.getRight(), cropBox.getTop()});
PdfImportedPage importedPage = copy.getImportedPage(reader, page);
pageN.put(PdfName.CROPBOX, leftBox);
copy.addPage(importedPage);
pageN.put(PdfName.CROPBOX, rightBox);
copy.addPage(importedPage);
}
document.close();
}
finally
{
reader.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:36,代码来源:SplitIntoHalfPages.java
示例15: testChangeAppearances
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/37027579/how-to-associate-a-previous-signature-in-a-new-signature-field">
* How to associate a previous signature in a new signature field
* </a>
* <br/>
* <span>BLANK-signed.pdf, <em>a blank file from elsewhere with an invisible signature.</em></span>
* <p>
* Quite surprisingly it turns out that changing the signature appearance is possible without
* breaking the signature, merely a warning appears which can be hidden by simply signing again.
* </p>
*/
@Test
public void testChangeAppearances() throws IOException, DocumentException
{
try ( InputStream resource = getClass().getResourceAsStream("BLANK-signed.pdf");
OutputStream result = new FileOutputStream(new File(RESULT_FOLDER, "BLANK-signed-app.pdf")))
{
PdfReader pdfReader = new PdfReader(resource);
PdfStamper pdfStamper = new PdfStamper(pdfReader, result, '\0', true);
AcroFields acroFields = pdfStamper.getAcroFields();
for (String signatureName : acroFields.getSignatureNames())
{
Item field = acroFields.getFieldItem(signatureName);
field.writeToAll(PdfName.RECT, new PdfArray(new int[]{100,100,200,200}), Item.WRITE_WIDGET);
field.markUsed(acroFields, Item.WRITE_WIDGET);
PdfAppearance appearance = PdfAppearance.createAppearance(pdfStamper.getWriter(), 100, 100);
appearance.setColorStroke(BaseColor.RED);
appearance.moveTo(0, 0);
appearance.lineTo(99, 99);
appearance.moveTo(0, 99);
appearance.lineTo(99, 0);
appearance.stroke();
PdfDictionary appDict = new PdfDictionary();
appDict.put(PdfName.N, appearance.getIndirectReference());
field.writeToAll(PdfName.AP, appDict, Item.WRITE_WIDGET);
}
pdfStamper.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:44,代码来源:ChangeSignatureAppearance.java
示例16: verify
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* This method checks the signatures referenced from the AcroForm Fields.
*/
void verify(PdfReader reader) throws GeneralSecurityException
{
PdfDictionary top = (PdfDictionary)PdfReader.getPdfObjectRelease(reader.getCatalog().get(PdfName.ACROFORM));
if (top == null)
{
System.out.println("No AcroForm, so nothing to verify");
return;
}
PdfArray arrfds = (PdfArray)PdfReader.getPdfObjectRelease(top.get(PdfName.FIELDS));
if (arrfds == null || arrfds.isEmpty())
{
System.out.println("No AcroForm Fields, so nothing to verify");
return;
}
for (PdfObject object : arrfds)
{
object = PdfReader.getPdfObject(object);
if (object == null)
{
System.out.println("* A null entry.");
}
else if (!object.isDictionary())
{
System.out.println("* A non-dictionary entry.");
}
else
{
verify(reader, (PdfDictionary) object, null, null, null, false);
}
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:37,代码来源:VerifyAcroFormSignatures.java
示例17: createScaledBoxArray
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
private static PdfArray createScaledBoxArray(final Rectangle scaledBox) {
PdfArray scaleBoxArray = new PdfArray();
scaleBoxArray.add(new PdfNumber(scaledBox.getLeft()));
scaleBoxArray.add(new PdfNumber(scaledBox.getBottom()));
scaleBoxArray.add(new PdfNumber(scaledBox.getRight()));
scaleBoxArray.add(new PdfNumber(scaledBox.getTop()));
return scaleBoxArray;
}
开发者ID:mbaeuerle,项目名称:Briss-2.0,代码行数:9,代码来源:DocumentCropper.java
示例18: getFileAttachmentsDictionaries
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
private Set<PdfDictionary> getFileAttachmentsDictionaries(PdfReader reader) {
Set<PdfDictionary> retSet = new NullSafeSet<PdfDictionary>();
for (int k = 1; k <= reader.getNumberOfPages(); ++k) {
PdfArray annots = reader.getPageN(k).getAsArray(PdfName.ANNOTS);
if (annots != null) {
for (PdfObject current : annots) {
PdfDictionary annot = (PdfDictionary) PdfReader.getPdfObject(current);
if (PdfName.FILEATTACHMENT.equals(annot.getAsName(PdfName.SUBTYPE))) {
retSet.add(annot.getAsDict(PdfName.FS));
}
}
}
}
return retSet;
}
开发者ID:torakiki,项目名称:sejda-itext5,代码行数:16,代码来源:PdfUnpacker.java
示例19: testInsertTitlePage
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
/**
* <a href="http://stackoverflow.com/questions/28911509/how-to-retain-page-labels-when-concatenating-an-existing-pdf-with-a-pdf-created">
* How to retain page labels when concatenating an existing pdf with a pdf created from scratch?
* </a>
* <p>
* A proposal how to implement the task using a {@link PdfStamper}.
*/
@Test
public void testInsertTitlePage() throws IOException, DocumentException
{
try ( InputStream documentStream = getClass().getResourceAsStream("Labels.pdf");
InputStream titleStream = getClass().getResourceAsStream("Cover.pdf");
OutputStream outputStream = new FileOutputStream(new File(RESULT_FOLDER, "labels-with-cover-page.pdf")) )
{
PdfReader titleReader = new PdfReader(titleStream);
PdfReader reader = new PdfReader(documentStream);
PdfStamper stamper = new PdfStamper(reader, outputStream);
PdfImportedPage page = stamper.getImportedPage(titleReader, 1);
stamper.insertPage(1, titleReader.getPageSize(1));
PdfContentByte content = stamper.getUnderContent(1);
content.addTemplate(page, 0, 0);
copyLinks(stamper, 1, titleReader, 1);
PdfDictionary root = reader.getCatalog();
PdfDictionary labels = root.getAsDict(PdfName.PAGELABELS);
if (labels != null)
{
PdfArray newNums = new PdfArray();
newNums.add(new PdfNumber(0));
PdfDictionary coverDict = new PdfDictionary();
coverDict.put(PdfName.P, new PdfString("Cover Page"));
newNums.add(coverDict);
PdfArray nums = labels.getAsArray(PdfName.NUMS);
if (nums != null)
{
for (int i = 0; i < nums.size() - 1; )
{
int n = nums.getAsNumber(i++).intValue();
newNums.add(new PdfNumber(n+1));
newNums.add(nums.getPdfObject(i++));
}
}
labels.put(PdfName.NUMS, newNums);
stamper.markUsed(labels);
}
stamper.close();
}
}
开发者ID:mkl-public,项目名称:testarea-itext5,代码行数:54,代码来源:InsertPage.java
示例20: configurePDFWriter
import com.itextpdf.text.pdf.PdfArray; //导入依赖的package包/类
@Override
protected void configurePDFWriter(PdfWriter writer) throws IOException {
double leftMap = pageFormat.getPageLeft();
double bottomMap = pageFormat.getPageBottom();
PdfDictionary lgiDict = new PdfDictionary(new PdfName("LGIDict"));
lgiDict.put(new PdfName("Version"), new PdfNumber("2.1"));
/*
// Registration (optional): not interpreted by GDAL
double rightMap = pageFormat.getPageRight();
double topMap = pageFormat.getPageTop();
float leftPage = xToPagePx((float) leftMap);
float bottomPage = yToPagePx((float) bottomMap);
float rightPage = xToPagePx((float) rightMap);
float topPage = yToPagePx((float) topMap);
PdfArray lowerLeftPoint = new PdfArray();
lowerLeftPoint.add(new PdfString(Double.toString(leftPage)));
lowerLeftPoint.add(new PdfString(Double.toString(bottomPage)));
lowerLeftPoint.add(new PdfString(Double.toString(leftMap)));
lowerLeftPoint.add(new PdfString(Double.toString(bottomMap)));
PdfArray upperRightPoint = new PdfArray();
upperRightPoint.add(new PdfString(Double.toString(rightPage)));
upperRightPoint.add(new PdfString(Double.toString(topPage)));
upperRightPoint.add(new PdfString(Double.toString(rightMap)));
upperRightPoint.add(new PdfString(Double.toString(topMap)));
PdfArray registration = new PdfArray();
registration.add(lowerLeftPoint);
registration.add(upperRightPoint);
lgiDict.put(new PdfName("Registration"), registration);
*/
// FIXME usage of PageFormat.MM2PX
double scale = pageFormat.getPageWidthWorldCoordinates() / pageFormat.getPageWidth() / PageFormat.MM2PX;
PdfArray ctmArray = new PdfArray();
ctmArray.add(new PdfString(Double.toString(scale)));
ctmArray.add(new PdfString("0"));
ctmArray.add(new PdfString("0"));
ctmArray.add(new PdfString(Double.toString(scale)));
ctmArray.add(new PdfString(Double.toString(leftMap)));
ctmArray.add(new PdfString(Double.toString(bottomMap)));
lgiDict.put(new PdfName("CTM"), ctmArray);
// Projection
PdfDictionary projectionDict = new PdfDictionary(new PdfName("Projection"));
projectionDict.put(new PdfName("ProjectionType"), new PdfString("NONE"));
lgiDict.put(new PdfName("Projection"), projectionDict);
/*
// Neatline (optional)
PdfArray neatlinePoints = new PdfArray();
neatlinePoints.add(new PdfString(Double.toString(leftPage)));
neatlinePoints.add(new PdfString(Double.toString(bottomPage)));
neatlinePoints.add(new PdfString(Double.toString(rightPage)));
neatlinePoints.add(new PdfString(Double.toString(topPage)));
lgiDict.put(new PdfName("Neatline"), neatlinePoints);
*/
writer.addPageDictEntry(new PdfName("LGIDict"), lgiDict);
}
开发者ID:OSUCartography,项目名称:ScreePainter,代码行数:67,代码来源:TerraGoGeoPDFExporter.java
注:本文中的com.itextpdf.text.pdf.PdfArray类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论