當前位置: 首頁>>代碼示例>>Java>>正文


Java Rectangle.getWidth方法代碼示例

本文整理匯總了Java中com.itextpdf.text.Rectangle.getWidth方法的典型用法代碼示例。如果您正苦於以下問題:Java Rectangle.getWidth方法的具體用法?Java Rectangle.getWidth怎麽用?Java Rectangle.getWidth使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在com.itextpdf.text.Rectangle的用法示例。


在下文中一共展示了Rectangle.getWidth方法的13個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: testSplitDocumentA6

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
/**
 * <a href="https://stackoverflow.com/questions/46466747/how-to-split-a-pdf-page-in-java">
 * How to split a PDF page in java?
 * </a>
 * <p>
 * This test shows how to split the pages of a document into tiles of A6
 * size using the {@link Abstract2DPdfPageSplittingTool}.
 * </p>
 */
@Test
public void testSplitDocumentA6() throws IOException, DocumentException {
    try (InputStream resource = getClass().getResourceAsStream("document.pdf");
            OutputStream result = new FileOutputStream(new File(RESULT_FOLDER, "document-A6.pdf"))) {
        Abstract2DPdfPageSplittingTool tool = new Abstract2DPdfPageSplittingTool() {
            @Override
            protected Iterable<Rectangle> determineSplitRectangles(PdfReader reader, int page) {
                Rectangle targetSize = PageSize.A6;
                List<Rectangle> rectangles = new ArrayList<>();
                Rectangle pageSize = reader.getPageSize(page);
                for (float y = pageSize.getTop(); y > pageSize.getBottom() + 5; y-=targetSize.getHeight()) {
                    for (float x = pageSize.getLeft(); x < pageSize.getRight() - 5; x+=targetSize.getWidth()) {
                        rectangles.add(new Rectangle(x, y - targetSize.getHeight(), x + targetSize.getWidth(), y));
                    }
                }
                return rectangles;
            }
        };
        tool.split(result, new PdfReader(resource));
    }
}
 
開發者ID:mkl-public,項目名稱:testarea-itext5,代碼行數:31,代碼來源:SplitPages.java

示例2: clusterPages

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
public static ClusterDefinition clusterPages(final File source, final PageExcludes pageExcludes) throws IOException {
	PdfReader reader = new PdfReader(source.getAbsolutePath());

	ClusterDefinition clusters = new ClusterDefinition();

	for (int page = 1; page <= reader.getNumberOfPages(); page++) {

		Rectangle layoutBox = getLayoutBox(reader, page);

		// create Cluster
		// if the pagenumber should be excluded then use it as a
		// discriminating parameter, else use default value

		boolean excluded = checkExclusionAndGetPageNumber(pageExcludes, page);

		PageCluster tmpCluster = new PageCluster(page % 2 == 0, (int) layoutBox.getWidth(), (int) layoutBox.getHeight(),
				excluded, page);

		clusters.addOrMergeCluster(tmpCluster);
	}
	reader.close();
	clusters.selectAndSetPagesForMerging();
	return clusters;
}
 
開發者ID:mbaeuerle,項目名稱:Briss-2.0,代碼行數:25,代碼來源:ClusterCreator.java

示例3: centerIn

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
Rectangle centerIn(Rectangle source, int rotation, float width, float height)
{
    if (rotation % 180 != 0)
    {
        float temp = height;
        height = width;
        width = temp;
    }

    float halfWidthToRemove = (source.getWidth() - width) / 2.0f;
    float halfHeightToRemove = (source.getHeight() - height) / 2.0f;
    return new Rectangle(source.getLeft(halfWidthToRemove), source.getBottom(halfHeightToRemove),
            source.getRight(halfWidthToRemove), source.getTop(halfHeightToRemove));
}
 
開發者ID:mkl-public,項目名稱:testarea-itext5,代碼行數:15,代碼來源:UnifiedPagesizeMerging.java

示例4: find

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
public Collection<Rectangle2D> find(PdfReader reader, float minWidth, float minHeight, int page) throws IOException
{
    Rectangle cropBox = reader.getCropBox(page);
    Rectangle2D crop = new Rectangle2D.Float(cropBox.getLeft(), cropBox.getBottom(), cropBox.getWidth(), cropBox.getHeight());
    FreeSpaceFinder finder = new FreeSpaceFinder(crop, minWidth, minHeight);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    parser.processContent(page, finder);
    return finder.freeSpaces;
}
 
開發者ID:mkl-public,項目名稱:testarea-itext5,代碼行數:10,代碼來源:FindFreeSpace.java

示例5: findExt

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
public Collection<Rectangle2D> findExt(PdfReader reader, float minWidth, float minHeight, int page) throws IOException
{
    Rectangle cropBox = reader.getCropBox(page);
    Rectangle2D crop = new Rectangle2D.Float(cropBox.getLeft(), cropBox.getBottom(), cropBox.getWidth(), cropBox.getHeight());
    FreeSpaceFinder finder = new FreeSpaceFinderExt(crop, minWidth, minHeight);
    PdfReaderContentParser parser = new PdfReaderContentParser(reader);
    parser.processContent(page, finder);
    return finder.freeSpaces;
}
 
開發者ID:mkl-public,項目名稱:testarea-itext5,代碼行數:10,代碼來源:FindFreeSpace.java

示例6: calculateScaledRectangle

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
private static Rectangle calculateScaledRectangle(List<Rectangle> boxes, Float[] ratios, int rotation) {
	if (ratios == null || boxes.size() == 0)
		return null;
	Rectangle smallestBox = null;
	// find smallest box
	float smallestSquare = Float.MAX_VALUE;
	for (Rectangle box : boxes) {
		if (box != null) {
			if (smallestBox == null) {
				smallestBox = box;
			}
			if (smallestSquare > box.getWidth() * box.getHeight()) {
				// set new smallest box
				smallestSquare = box.getWidth() * box.getHeight();
				smallestBox = box;
			}
		}
	}
	if (smallestBox == null)
		return null; // no useable box was found

	// rotate the ratios according to the rotation of the page
	float[] rotRatios = rotateRatios(ratios, rotation);

	// use smallest box as basis for calculation
	Rectangle scaledBox = new Rectangle(smallestBox);

	scaledBox.setLeft(smallestBox.getLeft() + (smallestBox.getWidth() * rotRatios[0]));
	scaledBox.setBottom(smallestBox.getBottom() + (smallestBox.getHeight() * rotRatios[1]));
	scaledBox.setRight(smallestBox.getLeft() + (smallestBox.getWidth() * (1 - rotRatios[2])));
	scaledBox.setTop(smallestBox.getBottom() + (smallestBox.getHeight() * (1 - rotRatios[3])));

	return scaledBox;
}
 
開發者ID:mbaeuerle,項目名稱:Briss-2.0,代碼行數:35,代碼來源:CropManager.java

示例7: calculateScaledRectangle

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
public static Rectangle calculateScaledRectangle(final List<Rectangle> boxes, final Float[] ratios, final int rotation) {
	if (ratios == null || boxes.size() == 0)
		return null;
	Rectangle smallestBox = null;
	// find smallest box
	float smallestSquare = Float.MAX_VALUE;
	for (Rectangle box : boxes) {
		if (box != null) {
			if (smallestBox == null) {
				smallestBox = box;
			}
			if (smallestSquare > box.getWidth() * box.getHeight()) {
				// set new smallest box
				smallestSquare = box.getWidth() * box.getHeight();
				smallestBox = box;
			}
		}
	}
	if (smallestBox == null)
		return null; // no useable box was found

	// rotate the ratios according to the rotation of the page
	float[] rotRatios = rotateRatios(ratios, rotation);

	// use smallest box as basis for calculation
	Rectangle scaledBox = new Rectangle(smallestBox);

	scaledBox.setLeft(smallestBox.getLeft() + (smallestBox.getWidth() * rotRatios[0]));
	scaledBox.setBottom(smallestBox.getBottom() + (smallestBox.getHeight() * rotRatios[1]));
	scaledBox.setRight(smallestBox.getLeft() + (smallestBox.getWidth() * (1 - rotRatios[2])));
	scaledBox.setTop(smallestBox.getBottom() + (smallestBox.getHeight() * (1 - rotRatios[3])));

	return scaledBox;
}
 
開發者ID:mbaeuerle,項目名稱:Briss-2.0,代碼行數:35,代碼來源:RectangleHandler.java

示例8: clusterPages

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
public static void clusterPages(ClusterJob clusterJob) throws IOException {
	PdfReader reader = new PdfReader(clusterJob.getSource().getAbsolutePath());

	ClusterCollection clusters = clusterJob.getClusterCollection();
	for (int page = 1; page <= reader.getNumberOfPages(); page++) {
		Rectangle layoutBox = reader.getBoxSize(page, "crop");

		if (layoutBox == null) {
			layoutBox = reader.getBoxSize(page, "media");
		}

		// create Cluster
		// if the pagenumber should be excluded then use it as a
		// discriminating parameter, else use default value

		int pageNumber = -1;
		if (clusterJob.getExcludedPageSet() != null && clusterJob.getExcludedPageSet().contains(page)) {
			pageNumber = page;
		}

		SingleCluster tmpCluster = new SingleCluster(page % 2 == 0, (int) layoutBox.getWidth(),
				(int) layoutBox.getHeight(), pageNumber);

		clusters.addPageToCluster(tmpCluster, page);
	}

	// for every cluster create a set of pages on which the preview will
	// be based
	for (SingleCluster cluster : clusters.getClusterToPagesMapping().keySet()) {
		cluster.choosePagesToMerge(clusters.getClusterToPagesMapping().get(cluster));
	}
	reader.close();
}
 
開發者ID:mbaeuerle,項目名稱:Briss-2.0,代碼行數:34,代碼來源:ClusterManager.java

示例9: doInBackground

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
@Override
protected Exception doInBackground(String... photos) {
    try {
        // Get output Directory
        // Create the PDF and set some metadata
        Document document = new Document(PageSize.A4, DOCUMENT_MARGIN, DOCUMENT_MARGIN, DOCUMENT_MARGIN, DOCUMENT_MARGIN);
        Resources resources = mContext.getResources();
        document.addTitle(mFilename);
        document.addAuthor(resources.getString(R.string.app_name));
        document.addSubject(resources.getString(R.string.file_subject));
        // Open the file that we will write the pdf to.
        java.io.File fileContent = new java.io.File(ImageUtils.getAlbumStorageDir(MainActivity.ALBUM_NAME) + mFilename);
        OutputStream outputStream = new FileOutputStream(fileContent);
        PdfWriter.getInstance(document, outputStream);
        document.open();
        // Get the document's size
        Rectangle pageSize = document.getPageSize();
        float pageWidth = pageSize.getWidth() - (document.leftMargin() + document.rightMargin());
        float pageHeight = pageSize.getHeight();
        //Loop through images and add them to the document
        for (String path : photos) {
            Image image = Image.getInstance(path);
            image.scaleToFit(pageWidth, pageHeight);
            document.add(image);
            document.newPage();
        }
        // Cleanup
        document.close();
        outputStream.close();
        // Upload time!
        FileContent mediaContent = new FileContent("application/pdf", fileContent);
        File body = new File();
        if (mFolder != null)
            body.setParents(Arrays.asList(new ParentReference().setId(mFolder.getId())));
        body.setTitle(mFilename);
        body.setDescription(resources.getString(R.string.file_subject));
        body.setMimeType("application/pdf");
        Drive.Files.Insert insert = mService.files().insert(body, mediaContent);
        MediaHttpUploader uploader = insert.getMediaHttpUploader();
        uploader.setDirectUploadEnabled(false);
        uploader.setChunkSize(MediaHttpUploader.MINIMUM_CHUNK_SIZE);
        uploader.setProgressListener(new FileProgressListener());
        File file = insert.execute();
        Log.d("C2P", "File Id: " + file.getId());
        /* Database Code */
        DateFormat format = new SimpleDateFormat("MM/dd/yyyy");
        Date date = new Date();
        //file.getFileSize().toString()
        String parentFolder = mFolder != null ? mFolder.getId() : "root";
        Long size = file.getFileSize();
        String fileSizeString = humanReadableByteCount(size);
        Upload upload = new Upload(-1, mFilename, mFolderPath, fileSizeString, parentFolder, format.format(date), mService.about().get().execute().getUser().getEmailAddress());
        UploadDataAdapter mUploadDataAdapter = new UploadDataAdapter(mContext);
        mUploadDataAdapter.open();
        mUploadDataAdapter.addUpload(upload);
        mUploadDataAdapter.close();
    } catch (Exception e) {
        Log.d("C2P", "ERROR", e);
        return e;
    }
    return null;
}
 
開發者ID:rockwotj,項目名稱:Cam2PDF,代碼行數:63,代碼來源:UpvertTask.java

示例10: getCenterX

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
/**
 * Gets the X value for centering the watermark image
 * 
 * @param r
 * @param img
 * @return
 */
protected float getCenterX(Rectangle r, Image img)
{
    float x = 0;
    float pdfwidth = r.getWidth();
    float imgwidth = img.getWidth();

    x = (pdfwidth - imgwidth) / 2;

    return x;
}
 
開發者ID:teqnology,項目名稱:alfresco-pdf-toolkit,代碼行數:18,代碼來源:BasePDFStampActionExecuter.java

示例11: signWithCustomLayer2

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
/**
 * <a href="https://stackoverflow.com/questions/45062602/itext-pdfappearence-issue">
 * Text - PDFAppearence issue
 * </a>
 * <p>
 * This test shows how one can create a custom signature layer 2.
 * As the OP of the question at hand mainly wants to generate a
 * pure DESCRIPTION appearance that uses the whole area, we here
 * essentially copy the PdfSignatureAppearance.getAppearance code
 * for generating layer 2 in pure DESCRIPTION mode and apply it
 * to a plain pre-fetched layer 2.
 * </p>
 */
@Test
public void signWithCustomLayer2() throws IOException, DocumentException, GeneralSecurityException
{
    String digestAlgorithm = "SHA512";
    CryptoStandard subfilter = CryptoStandard.CMS;

    try (   InputStream resource = getClass().getResourceAsStream("/mkl/testarea/itext5/extract/test.pdf")  )
    {
        PdfReader reader = new PdfReader(resource);
        FileOutputStream os = new FileOutputStream(new File(RESULT_FOLDER, "test-customLayer2.pdf"));
        PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');

        PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
        appearance.setReason("reason");
        appearance.setLocation("location");
        appearance.setVisibleSignature(new Rectangle(36, 748, 144, 780), 1, "sig");

        // This essentially is the PdfSignatureAppearance.getAppearance code
        // for generating layer 2 in pure DESCRIPTION mode applied to a plain
        // pre-fetched layer 2.
        // vvvvv
        PdfTemplate layer2 = appearance.getLayer(2);
        String text = "We're using iText to put a text inside a signature placeholder in a PDF. "
                + "We use a code snippet similar to this to define the Signature Appearence.\n"
                + "Everything works fine, but the signature text does not fill all the signature "
                + "placeholder area as expected by us, but the area filled seems to have an height "
                + "that is approximately the 70% of the available space.\n"
                + "As a result, sometimes especially if the length of the signature text is quite "
                + "big, the signature text does not fit in the placeholder and the text is striped "
                + "away.";
        Font font = new Font();
        float size = font.getSize();
        final float MARGIN = 2;
        Rectangle dataRect = new Rectangle(
                MARGIN,
                MARGIN,
                appearance.getRect().getWidth() - MARGIN,
                appearance.getRect().getHeight() - MARGIN);
        if (size <= 0) {
            Rectangle sr = new Rectangle(dataRect.getWidth(), dataRect.getHeight());
            size = ColumnText.fitText(font, text, sr, 12, appearance.getRunDirection());
        }
        ColumnText ct = new ColumnText(layer2);
        ct.setRunDirection(appearance.getRunDirection());
        ct.setSimpleColumn(new Phrase(text, font), dataRect.getLeft(), dataRect.getBottom(), dataRect.getRight(), dataRect.getTop(), size, Element.ALIGN_LEFT);
        ct.go();
        // ^^^^^

        ExternalSignature pks = new PrivateKeySignature(pk, digestAlgorithm, "BC");
        ExternalDigest digest = new BouncyCastleDigest();
        MakeSignature.signDetached(appearance, digest, pks, chain, null, null, null, 0, subfilter);
    }
}
 
開發者ID:mkl-public,項目名稱:testarea-itext5,代碼行數:67,代碼來源:CreateSignature.java

示例12: Format

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
private Format(final Rectangle rectangle) {
	width = rectangle.getWidth();
	height = rectangle.getHeight();
}
 
開發者ID:bh4017,項目名稱:mobac,代碼行數:5,代碼來源:PaperSize.java

示例13: writeAlignedText

import com.itextpdf.text.Rectangle; //導入方法依賴的package包/類
/**
 * Writes text watermark to one of the 5 preconfigured locations
 * 
 * @param pcb
 * @param r
 * @param tokens
 * @param size
 * @param position
 */
private void writeAlignedText(PdfContentByte pcb, Rectangle r, Vector<String> tokens, float size, String position)
{
    // get the dimensions of our 'rectangle' for text
    float height = size * tokens.size();
    float width = 0;
    float centerX = 0, startY = 0;
    for (int i = 0; i < tokens.size(); i++)
    {
        if (pcb.getEffectiveStringWidth(tokens.get(i), false) > width)
        {
            width = pcb.getEffectiveStringWidth(tokens.get(i), false);
        }
    }

    // now that we have the width and height, we can calculate the center
    // position for
    // the rectangle that will contain our text.
    if (position.equals(POSITION_BOTTOMLEFT))
    {
        centerX = width / 2 + PAD;
        startY = 0 + PAD + height;
    }
    else if (position.equals(POSITION_BOTTOMRIGHT))
    {
        centerX = r.getWidth() - (width / 2) - PAD;
        startY = 0 + PAD + height;
    }
    else if (position.equals(POSITION_TOPLEFT))
    {
        centerX = width / 2 + PAD;
        startY = r.getHeight() - (PAD * 2);
    }
    else if (position.equals(POSITION_TOPRIGHT))
    {
        centerX = r.getWidth() - (width / 2) - PAD;
        startY = r.getHeight() - (PAD * 2);
    }
    else if (position.equals(POSITION_CENTER))
    {
        centerX = r.getWidth() / 2;
        startY = (r.getHeight() / 2) + (height / 2);
    }

    // apply text to PDF
    pcb.beginText();

    for (int t = 0; t < tokens.size(); t++)
    {
        pcb.showTextAligned(PdfContentByte.ALIGN_CENTER, tokens.get(t), centerX, startY - (size * t), 0);
    }

    pcb.endText();

}
 
開發者ID:teqnology,項目名稱:alfresco-pdf-toolkit,代碼行數:64,代碼來源:PDFWatermarkActionExecuter.java


注:本文中的com.itextpdf.text.Rectangle.getWidth方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。