Example usage for com.lowagie.text.pdf PdfStamper close

List of usage examples for com.lowagie.text.pdf PdfStamper close

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfStamper close.

Prototype

public void close() throws DocumentException, IOException 

Source Link

Document

Closes the document.

Usage

From source file:org.fenixedu.idcards.ui.candidacydocfiller.BPIPdfFiller.java

License:Open Source License

private ByteArrayOutputStream getFilledPdfBPIPersonalInformation(Person person)
        throws IOException, DocumentException {
    InputStream istream = getClass().getResourceAsStream(BPI_PERSONAL_INFORMATION_PDF_PATH);
    PdfReader reader = new PdfReader(istream);
    reader.getAcroForm().remove(PdfName.SIGFLAGS);
    reader.selectPages("1,2");
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(reader, output);
    form = stamper.getAcroFields();//from w w  w.  j  a  v  a 2 s .co m

    setField("NomeCompleto_1", person.getName());

    if (person.isFemale()) {
        setField("Sexo_F", "Yes"); // female
    } else {
        setField("Sexo_M", "Yes"); // male
    }

    setField("NIF", person.getSocialSecurityNumber());
    setField("Numero", person.getDocumentIdNumber());

    setField("Nacionalidade", person.getCountryOfBirth().getCountryNationality().toString());
    setField("Naturalidade", person.getCountryOfBirth().getName());

    setField("Distrito", person.getDistrictOfBirth());
    setField("Concelho", person.getDistrictSubdivisionOfBirth());
    setField("Freguesia", person.getParishOfBirth());
    setField("NomedoPai", person.getNameOfFather());
    setField("NomedaMae", person.getNameOfMother());

    switch (person.getMaritalStatus()) {
    case CIVIL_UNION:
        setField("EstadoCivil_UniaodeFacto", "Yes");
        break;
    case DIVORCED:
        setField("EstadoCivil_Divorciado", "Yes");
        break;
    case MARRIED:
        setField("EstadoCivil_Casado", "Yes");
        break;
    case SEPARATED:
        setField("EstadoCivil_Separado Judicialmente", "Yes");
        break;
    case SINGLE:
        setField("EstadoCivil_Solteiro", "Yes");
        break;
    case WIDOWER:
        setField("EstadoCivil_Viuvo", "Yes");
        break;
    }

    setField("MoradadeResidenciaPermanente_1", person.getAddress());
    setField("MoradadeResidenciaPermanente_Localidade", person.getAreaOfAreaCode());
    setField("MoradadeResidenciaPermanente_DesignacaoPostal", person.getAreaOfAreaCode());
    setField("MoradadeResidenciaPermanente_Pais", person.getCountryOfResidence().getName());

    String postalCode = person.getPostalCode();
    int dashIndex = postalCode.indexOf('-');
    setField("CodigoPostal_1_1", postalCode.substring(0, 4));
    String last3Numbers = postalCode.substring(dashIndex + 1, dashIndex + 4);
    setField("CodigoPostal_1_2", last3Numbers);
    setField("Contactos_Movel_Pessoal", person.getDefaultMobilePhoneNumber());
    setField("Contactos_Email", getMail(person));

    YearMonthDay emissionDate = person.getEmissionDateOfDocumentIdYearMonthDay();
    if (emissionDate != null) {
        setField("DataEmissao_1", String.format("%02d", emissionDate.getDayOfMonth()));
        setField("DataEmissao_2", String.format("%02d", emissionDate.getMonthOfYear()));
        setField("DataEmissao_3", String.valueOf(emissionDate.getYear()));
    }

    YearMonthDay expirationDate = person.getExpirationDateOfDocumentIdYearMonthDay();
    setField("Valido_1", String.format("%02d", expirationDate.getDayOfMonth()));
    setField("Valido_2", String.format("%02d", expirationDate.getMonthOfYear()));
    setField("Valido_3", String.valueOf(expirationDate.getYear()));

    YearMonthDay birthdayDate = person.getDateOfBirthYearMonthDay();
    setField("DataNascimento_1", String.format("%02d", birthdayDate.getDayOfMonth()));
    setField("DataNascimento_2", String.format("%02d", birthdayDate.getMonthOfYear()));
    setField("DataNascimento_3", String.valueOf(birthdayDate.getYear()));

    stamper.setFormFlattening(true);
    stamper.close();
    return output;
}

From source file:org.fenixedu.idcards.ui.candidacydocfiller.BPIPdfFiller.java

License:Open Source License

private ByteArrayOutputStream getFilledPdfBPIProductsandServices(Person person)
        throws IOException, DocumentException {
    InputStream istream = getClass().getResourceAsStream(BPI_PRODUCTS_SERVICES_PDF_PATH);
    PdfReader reader = new PdfReader(istream);
    reader.getAcroForm().remove(PdfName.SIGFLAGS);
    reader.selectPages("1");
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(reader, output);
    form = stamper.getAcroFields();//from  w  ww. j a  v a2  s  .  c o  m

    setField("IdentificacaoIntervenientes_1Titular", person.getName());
    stamper.setFormFlattening(true);
    stamper.close();
    return output;
}

From source file:org.fenixedu.idcards.ui.candidacydocfiller.CGDPdfFiller.java

License:Open Source License

private ByteArrayOutputStream getFilledPdfCGDPersonalInformation(Person person)
        throws IOException, DocumentException {
    InputStream istream = getClass().getResourceAsStream(CGD_PERSONAL_INFORMATION_PDF_PATH);
    PdfReader reader = new PdfReader(istream);
    reader.getAcroForm().remove(PdfName.SIGFLAGS);
    reader.selectPages("1");
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(reader, output);
    form = stamper.getAcroFields();/*  w w w  . ja va 2  s .c  om*/

    setField("T_NomeComp", person.getName());
    setField("T_Email", getMail(person));

    if (person.isFemale()) {
        setField("CB_0_1", "Yes"); // female
    } else {
        setField("CB_0_0", "Yes"); // male
    }

    setField("Cod_data_1",
            person.getDateOfBirthYearMonthDay().toString(DateTimeFormat.forPattern("yyyy/MM/dd")));

    setField("NIF1", person.getSocialSecurityNumber());
    setField("T_DocIdent", person.getDocumentIdNumber());

    switch (person.getMaritalStatus()) {
    case CIVIL_UNION:
        setField("CB_EstCivil01", MARITAL_STATUS_CIVIL_UNION);
        break;
    case DIVORCED:
        setField("CB_EstCivil01", MARITAL_STATUS_DIVORCED);
        break;
    case MARRIED:
        setField("CB_EstCivil01", "");
        break;
    case SEPARATED:
        setField("CB_EstCivil01", MARITAL_STATUS_SEPARATED);
        break;
    case SINGLE:
        setField("CB_EstCivil01", MARITAL_STATUS_SINGLE);
        break;
    case WIDOWER:
        setField("CB_EstCivil01", MARITAL_STATUS_WIDOWER);
        break;
    }
    YearMonthDay emissionDate = person.getEmissionDateOfDocumentIdYearMonthDay();
    if (emissionDate != null) {
        setField("Cod_data_2", emissionDate.toString(DateTimeFormat.forPattern("yyyy/MM/dd")));
    }

    YearMonthDay expirationDate = person.getExpirationDateOfDocumentIdYearMonthDay();
    if (expirationDate != null) {
        setField("Cod_data_3", expirationDate.toString(DateTimeFormat.forPattern("yyyy/MM/dd")));
    }

    setField("T_NomePai", person.getNameOfFather());
    setField("T_NomeMae", person.getNameOfMother());

    setField("T_NatPais", person.getCountryOfBirth().getName());
    setField("T_Naturali", person.getDistrictOfBirth());
    setField("T_NatConc", person.getDistrictSubdivisionOfBirth());
    setField("T_NatFreg", person.getParishOfBirth());
    setField("T_PaisRes", person.getCountryOfBirth().getCountryNationality().toString());

    setField("T_Morada01", person.getAddress());
    setField("T_Localid01", person.getAreaOfAreaCode());
    setField("T_Telef", person.getDefaultMobilePhoneNumber());

    String postalCode = person.getPostalCode();
    int dashIndex = postalCode.indexOf('-');
    setField("T_CodPos01", postalCode.substring(0, 4));
    String last3Numbers = postalCode.substring(dashIndex + 1, dashIndex + 4);
    setField("T_CodPos03_1", last3Numbers);
    setField("T_Localid02_1", person.getAreaOfAreaCode());

    setField("T_Distrito", person.getDistrictOfResidence());
    setField("T_Conc", person.getDistrictSubdivisionOfResidence());
    setField("T_Freguesia", person.getParishOfResidence());
    setField("T_PaisResid", person.getCountryOfResidence().getName());

    stamper.setFormFlattening(true);
    stamper.close();
    return output;
}

From source file:org.fenixedu.idcards.ui.candidacydocfiller.SantanderPdfFiller.java

License:Open Source License

private ByteArrayOutputStream getFilledPdfSantanderApplication(Person person)
        throws IOException, DocumentException {
    InputStream istream = getClass().getResourceAsStream(SANTANDER_APPLICATION_PDF_PATH);
    PdfReader reader = new PdfReader(istream);
    reader.getAcroForm().remove(PdfName.SIGFLAGS);
    reader.selectPages("1,2");
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(reader, output);
    form = stamper.getAcroFields();//from  w ww.j a  v a 2s.co  m

    setField("topmostSubform[0].Page1[0].Nomecompleto[0]", person.getName());
    String documentIdNumber = person.getDocumentIdNumber();
    if (person.getIdDocumentType().equals(IDDocumentType.CITIZEN_CARD)
            || person.getIdDocumentType().equals(IDDocumentType.IDENTITY_CARD)) {
        setField("topmostSubform[0].Page1[0].NumBICartaoCidadaooutro[0]", documentIdNumber);
        setField("topmostSubform[0].Page1[0].Checkdigit[0]",
                person.getIdentificationDocumentSeriesNumberValue());
    } else {
        setField("topmostSubform[0].Page1[0].Outrotipodocidentificacao[0]", documentIdNumber);
    }

    YearMonthDay emissionDate = person.getEmissionDateOfDocumentIdYearMonthDay();
    if (emissionDate != null) {
        setField("topmostSubform[0].Page1[0].Dataemissao[0]",
                emissionDate.toString(DateTimeFormat.forPattern("dd/MM/yyyy")));
    }
    setField("topmostSubform[0].Page1[0].Datavalidade[0]", person.getExpirationDateOfDocumentIdYearMonthDay()
            .toString(DateTimeFormat.forPattern("dd/MM/yyyy")));
    setField("topmostSubform[0].Page1[0].NIF[0]", person.getSocialSecurityNumber());
    setField("topmostSubform[0].Page1[0].Datanascimento[0]",
            person.getDateOfBirthYearMonthDay().toString(DateTimeFormat.forPattern("dd/MM/yyyy")));
    YearMonthDay dateOfBirthYearMonthDay = person.getDateOfBirthYearMonthDay();
    Period periodBetween = new Period(dateOfBirthYearMonthDay, new YearMonthDay());
    setField("topmostSubform[0].Page1[0].Idadeactual[0]",
            String.valueOf(periodBetween.get(DurationFieldType.years())));
    if (person.isFemale()) {
        setField("topmostSubform[0].Page1[0].Sexo[0]", "F"); // female
    } else if (person.isMale()) {
        setField("topmostSubform[0].Page1[0].Sexo[0]", "M"); // male
    }

    switch (person.getMaritalStatus()) {
    case CIVIL_UNION:
        setField("topmostSubform[0].Page1[0].Uniaofacto[0]", "1");
        break;
    case DIVORCED:
        setField("topmostSubform[0].Page1[0].Divorciado[0]", "1");
        break;
    case MARRIED:
        setField("topmostSubform[0].Page1[0].Casado[0]", "1");
        break;
    case SEPARATED:
        setField("topmostSubform[0].Page1[0].Separado[0]", "1");
        break;
    case SINGLE:
        setField("topmostSubform[0].Page1[0].Solteiro[0]", "1");
        break;
    case WIDOWER:
        setField("topmostSubform[0].Page1[0].Viuvo[0]", "1");
        break;
    }
    setField("topmostSubform[0].Page1[0].Telemovel[0]", person.getDefaultMobilePhoneNumber());
    setField("topmostSubform[0].Page1[0].E-mail[0]", getMail(person));

    setField("topmostSubform[0].Page1[0].Moradaresidenciapermanente[0]", person.getAddress());
    setField("topmostSubform[0].Page1[0].localidade[0]", person.getAreaOfAreaCode());
    String postalCode = person.getPostalCode();
    int dashIndex = postalCode.indexOf('-');
    setField("topmostSubform[0].Page1[0].CodPostal[0]", postalCode.substring(0, 4));
    String last3Numbers = person.getPostalCode().substring(dashIndex + 1, dashIndex + 4);
    setField("topmostSubform[0].Page1[0].ExtensaoCodPostal[0]", last3Numbers);

    setField("topmostSubform[0].Page1[0].Paisnacionalidade",
            person.getCountry().getCountryNationality().getPreferedContent());
    setField("topmostSubform[0].Page1[0].Paisnascimento", person.getCountryOfBirth().getName());
    setField("topmostSubform[0].Page1[0].Paisresidencia", person.getCountryOfResidence().getName());

    setField("topmostSubform[0].Page2[0].InstituioEnsinoSuperior[0]",
            UniversityUnit.getInstitutionsUniversityUnit().getName());
    setField("topmostSubform[0].Page2[0].FaculdadeEscola[0]",
            Bennu.getInstance().getInstitutionUnit().getName());
    Registration registration = getRegistration(person);
    if (registration != null) {
        setField("topmostSubform[0].Page2[0].Curso[0]", registration.getDegree().getSigla());
        setField("topmostSubform[0].Page2[0].AnoIncioCurso[0]",
                String.valueOf(registration.getStartDate().getYear()));
    }

    stamper.setFormFlattening(true);
    stamper.close();
    return output;
}

From source file:org.fenixedu.ulisboa.specifications.ui.firstTimeCandidacy.util.CGDPdfFiller.java

License:Open Source License

private ByteArrayOutputStream getFilledPdfCGDPersonalInformation(Person person, InputStream pdfTemplateStream)
        throws IOException, DocumentException {
    PdfReader reader = new PdfReader(pdfTemplateStream);
    reader.getAcroForm().remove(PdfName.SIGFLAGS);
    reader.selectPages("1,3,4"); // The template we are using has a blank page after the front sheet.
    ByteArrayOutputStream output = new ByteArrayOutputStream();
    PdfStamper stamper = new PdfStamper(reader, output);
    form = stamper.getAcroFields();/*w  w w  .  j  a v  a  2s .c  om*/

    setField("T_NomeComp", person.getName());
    setField("T_Email", getMail(person));

    if (person.isFemale()) {
        setField("CB_0_1", "Yes"); // female
    } else {
        setField("CB_0_0", "Yes"); // male
    }

    if (person.getDateOfBirthYearMonthDay() != null) {
        setField("Cod_data_1",
                person.getDateOfBirthYearMonthDay().toString(DateTimeFormat.forPattern("yyyy/MM/dd")));
    }

    setField("NIF1", person.getSocialSecurityNumber());
    setField("T_DocIdent", person.getDocumentIdNumber());

    switch (person.getMaritalStatus()) {
    case CIVIL_UNION:
        setField("CB_EstCivil01", MARITAL_STATUS_CIVIL_UNION);
        break;
    case DIVORCED:
        setField("CB_EstCivil01", MARITAL_STATUS_DIVORCED);
        break;
    case MARRIED:
        setField("CB_EstCivil01", "");
        break;
    case SEPARATED:
        setField("CB_EstCivil01", MARITAL_STATUS_SEPARATED);
        break;
    case SINGLE:
        setField("CB_EstCivil01", MARITAL_STATUS_SINGLE);
        break;
    case WIDOWER:
        setField("CB_EstCivil01", MARITAL_STATUS_WIDOWER);
        break;
    }
    YearMonthDay emissionDate = person.getEmissionDateOfDocumentIdYearMonthDay();
    if (emissionDate != null) {
        setField("Cod_data_2", emissionDate.toString(DateTimeFormat.forPattern("yyyy/MM/dd")));
    }

    YearMonthDay expirationDate = person.getExpirationDateOfDocumentIdYearMonthDay();
    if (expirationDate != null) {
        setField("Cod_data_3", expirationDate.toString(DateTimeFormat.forPattern("yyyy/MM/dd")));
    }

    setField("T_NomePai", person.getNameOfFather());
    setField("T_NomeMae", person.getNameOfMother());

    if (person.getCountryOfBirth() != null) {
        setField("T_NatPais", person.getCountryOfBirth().getName());
        setField("T_Naturali", person.getDistrictOfBirth());
        setField("T_NatConc", person.getDistrictSubdivisionOfBirth());
        setField("T_NatFreg", person.getParishOfBirth());
        setField("T_PaisRes", person.getCountryOfBirth().getCountryNationality().toString());
    }

    setField("T_Morada01", person.getAddress());
    setField("T_Localid01", person.getAreaOfAreaCode());
    setField("T_Telef", person.getDefaultMobilePhoneNumber());

    String postalCode = person.getPostalCode();
    int dashIndex = postalCode.indexOf('-');
    if (postalCode != null && postalCode.length() >= dashIndex + 4) {
        setField("T_CodPos01", postalCode.substring(0, 4));
        String last3Numbers = postalCode.substring(dashIndex + 1, dashIndex + 4);
        setField("T_CodPos03_1", last3Numbers);
        setField("T_Localid02_1", person.getAreaOfAreaCode());
    }

    if (person.getCountryOfResidence() != null) {
        setField("T_Distrito", person.getDistrictOfResidence());
        setField("T_Conc", person.getDistrictSubdivisionOfResidence());
        setField("T_Freguesia", person.getParishOfResidence());
        setField("T_PaisResid", person.getCountryOfResidence().getName());
    }

    stamper.setFormFlattening(true);
    stamper.close();
    return output;
}

From source file:org.frameworkset.web.servlet.view.document.AbstractPdfStamperView.java

License:Apache License

@Override
protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
        HttpServletResponse response) throws Exception {

    // IE workaround: write into byte array first.
    ByteArrayOutputStream baos = createTemporaryOutputStream();

    PdfReader reader = readPdfResource();
    PdfStamper stamper = new PdfStamper(reader, baos);
    mergePdfDocument(model, stamper, request, response);
    stamper.close();

    // Flush to HTTP response.
    writeToResponse(response, baos);/*from  ww w.  ja v  a2  s.c o  m*/
}

From source file:org.jpedal.examples.simpleviewer.utils.ItextFunctions.java

License:Open Source License

/** uses itext to save out form data with any changes user has made */
public void saveFormsData(String file) {
    try {// www .java 2 s  . co  m
        org.jpedal.objects.acroforms.AcroRenderer formRenderer = dPDF.getCurrentFormRenderer();

        if (formRenderer == null)
            return;

        PdfReader reader = new PdfReader(selectedFile);
        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(file));
        AcroFields form = stamp.getAcroFields();

        List names = formRenderer.getComponentNameList();

        /**
         * work through all components writing out values
         */
        for (int i = 0; i < names.size(); i++) {

            String name = (String) names.get(i);
            Component[] comps = formRenderer.getComponentsByName(name);

            int type = form.getFieldType(name);
            String value = "";
            switch (type) {
            case AcroFields.FIELD_TYPE_CHECKBOX:
                if (comps.length == 1) {
                    JCheckBox cb = (JCheckBox) comps[0];
                    value = cb.getName();
                    if (value != null) {
                        int ptr = value.indexOf("-(");
                        if (ptr != -1) {
                            value = value.substring(ptr + 2, value.length() - 1);
                        }
                    }

                    if (value.equals(""))
                        value = "On";

                    if (cb.isSelected())
                        form.setField(name, value);
                    else
                        form.setField(name, "Off");

                } else {
                    for (int j = 0; j < comps.length; j++) {
                        JCheckBox cb = (JCheckBox) comps[j];
                        if (cb.isSelected()) {

                            value = cb.getName();
                            if (value != null) {
                                int ptr = value.indexOf("-(");
                                if (ptr != -1) {
                                    value = value.substring(ptr + 2, value.length() - 1);

                                    //                              name is wrong it should be the piece of field data that needs changing.
                                    //TODO itext
                                    form.setField(name, value);
                                }
                            }

                            break;
                        }
                    }
                }

                break;
            case AcroFields.FIELD_TYPE_COMBO:
                JComboBox combobox = (JComboBox) comps[0];
                value = (String) combobox.getSelectedItem();

                /**
                 * allow for user adding new value to Combo to emulate
                 * Acrobat * String currentText = (String)
                 * combobox.getEditor().getItem();
                 * 
                 * if(!currentText.equals("")) value = currentText;
                 */

                if (value == null)
                    value = "";
                form.setField(name, value);

                break;
            case AcroFields.FIELD_TYPE_LIST:
                JList list = (JList) comps[0];
                value = (String) list.getSelectedValue();
                if (value == null)
                    value = "";
                form.setField(name, value);

                break;
            case AcroFields.FIELD_TYPE_NONE:

                break;
            case AcroFields.FIELD_TYPE_PUSHBUTTON:

                break;
            case AcroFields.FIELD_TYPE_RADIOBUTTON:

                for (int j = 0; j < comps.length; j++) {
                    JRadioButton radioButton = (JRadioButton) comps[j];
                    if (radioButton.isSelected()) {

                        value = radioButton.getName();
                        if (value != null) {
                            int ptr = value.indexOf("-(");
                            if (ptr != -1) {
                                value = value.substring(ptr + 2, value.length() - 1);
                                form.setField(name, value);
                            }
                        }

                        break;
                    }
                }

                break;
            case AcroFields.FIELD_TYPE_SIGNATURE:

                break;

            case AcroFields.FIELD_TYPE_TEXT:
                JTextComponent tc = (JTextComponent) comps[0];
                value = tc.getText();
                form.setField(name, value);

                // ArrayList objArrayList = form.getFieldItem(name).widgets;
                // PdfDictionary dic = (PdfDictionary)objArrayList.get(0);
                // PdfDictionary action
                // =(PdfDictionary)PdfReader.getPdfObject(dic.get(PdfName.MK));
                //
                // if (action == null) {
                // PdfDictionary d = new PdfDictionary(PdfName.MK);
                // dic.put(PdfName.MK, d);
                //
                // Color color = tc.getBackground();
                // PdfArray f = new PdfArray(new int[] { color.getRed(),
                // color.getGreen(), color.getBlue() });
                // d.put(PdfName.BG, f);
                // }

                // moderatly useful debug code
                // Item dd = form.getFieldItem(name);
                //               
                // ArrayList objArrayList = dd.widgets;
                // Iterator iter1 = objArrayList.iterator(),iter2;
                // String strName;
                // PdfDictionary objPdfDict = null;
                // PdfName objName = null;
                // PdfObject objObject = null;
                // while(iter1.hasNext())
                // {
                // objPdfDict = (PdfDictionary)iter1.next();
                // System.out.println("PdfDictionary Object: " +
                // objPdfDict.toString());
                // Set objSet = objPdfDict.getKeys();
                // for(iter2 = objSet.iterator(); iter2.hasNext();)
                // {
                // objName = (PdfName)iter2.next();
                // objObject = objPdfDict.get(objName);
                // if(objName.toString().indexOf("MK")!=-1)
                // System.out.println("here");
                // System.out.println("objName: " + objName.toString() + " -
                // objObject:" + objObject.toString() + " - Type: " +
                // objObject.type());
                // if(objObject.isDictionary())
                // {
                // Set objSet2 = ((PdfDictionary)objObject).getKeys();
                // PdfObject objObject2;
                // PdfName objName2;
                // for(Iterator iter3 = objSet2.iterator();
                // iter3.hasNext();)
                // {
                // objName2 = (PdfName)iter3.next();
                // objObject2 = ((PdfDictionary)objObject).get(objName2);
                // System.out.println("objName2: " + objName2.toString() + "
                // -objObject2: " + objObject2.toString() + " - Type: " +
                // objObject2.type());
                // }
                // }
                // }
                // }

                break;
            default:
                break;
            }
        }
        stamp.close();

    } catch (ClassCastException e1) {
        System.out.println("Expected component does not match actual component");
    } catch (Exception e1) {
        e1.printStackTrace();
    }
}

From source file:org.jpedal.examples.simpleviewer.utils.ItextFunctions.java

License:Open Source License

public void add(int pageCount, PdfPageData currentPageData, InsertBlankPDFPage addPage) {
    File tempFile = null;/*from  w w  w.  jav a 2  s . c o  m*/

    try {
        tempFile = File.createTempFile("temp", null);

        ObjectStore.copy(selectedFile, tempFile.getAbsolutePath());
    } catch (Exception e) {
        return;
    }

    int pageToInsertBefore = addPage.getInsertBefore();

    boolean insertAsLastPage = false;
    if (pageToInsertBefore == -1)
        return;
    else if (pageToInsertBefore == -2)
        insertAsLastPage = true;

    try {
        PdfReader reader = new PdfReader(tempFile.getAbsolutePath());

        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(selectedFile));

        if (insertAsLastPage)
            stamp.insertPage(pageCount + 1, reader.getPageSizeWithRotation(pageCount));
        else
            stamp.insertPage(pageToInsertBefore, reader.getPageSizeWithRotation(pageToInsertBefore));

        stamp.close();
    } catch (Exception e) {

        ObjectStore.copy(tempFile.getAbsolutePath(), selectedFile);

        e.printStackTrace();

    } finally {
        tempFile.delete();
    }
}

From source file:org.jpedal.examples.simpleviewer.utils.ItextFunctions.java

License:Open Source License

public void rotate(int pageCount, PdfPageData currentPageData, RotatePDFPages current_selection) {
    File tempFile = null;/*from w  w  w.  jav a  2s. co  m*/

    try {
        tempFile = File.createTempFile("temp", null);

        ObjectStore.copy(selectedFile, tempFile.getAbsolutePath());
    } catch (Exception e) {
        return;
    }

    try {
        int[] pgsToRotate = current_selection.getRotatedPages();

        if (pgsToRotate == null)
            return;

        int check = -1;

        if (pgsToRotate.length == 1) {
            check = currentGUI.showConfirmDialog(Messages.getMessage("PdfViewerMessage.ConfirmRotatePages"),
                    Messages.getMessage("PdfViewerMessage.Confirm"), JOptionPane.YES_NO_OPTION);
        } else {
            check = currentGUI.showConfirmDialog(Messages.getMessage("PdfViewerMessage.ConfirmRotatePages"),
                    Messages.getMessage("PdfViewerMessage.Confirm"), JOptionPane.YES_NO_OPTION);
        }

        if (check != 0)
            return;

        if (pgsToRotate == null)
            return;

        List pagesToRotate = new ArrayList();
        for (int i = 0; i < pgsToRotate.length; i++)
            pagesToRotate.add(new Integer(pgsToRotate[i]));

        int direction = current_selection.getDirection();

        PdfReader reader = new PdfReader(tempFile.getAbsolutePath());

        for (int page = 1; page <= pageCount; page++) {
            if (pagesToRotate.contains(new Integer(page))) {
                // int currentRotation =
                // Integer.parseInt(reader.getPageN(page).get(PdfName.ROTATE).toString());

                int currentRotation = currentPageData.getRotation(page);

                if (direction == ROTATECLOCKWISE)
                    reader.getPageN(page).put(PdfName.ROTATE, new PdfNumber((currentRotation + 90) % 360));
                else if (direction == ROTATECOUNTERCLOCKWISE)
                    reader.getPageN(page).put(PdfName.ROTATE, new PdfNumber((currentRotation - 90) % 360));
                else if (direction == ROTATE180)
                    reader.getPageN(page).put(PdfName.ROTATE, new PdfNumber((currentRotation + 180) % 360));
                else
                    throw new Exception("invalid desired rotation");
            }

        }

        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(selectedFile));
        stamp.close();

    } catch (Exception e) {

        ObjectStore.copy(tempFile.getAbsolutePath(), selectedFile);

        e.printStackTrace();

    } finally {
        tempFile.delete();
    }
}

From source file:org.jpedal.examples.simpleviewer.utils.ItextFunctions.java

License:Open Source License

public void setCrop(int pageCount, PdfPageData currentPageData, CropPDFPages cropPage) {
    File tempFile = null;/*from   ww  w.  j  a va 2 s  . c  om*/

    try {
        tempFile = File.createTempFile("temp", null);

        ObjectStore.copy(selectedFile, tempFile.getAbsolutePath());
    } catch (Exception e) {
        return;
    }

    try {

        int[] pgsToEdit = cropPage.getPages();

        if (pgsToEdit == null)
            return;

        List pagesToEdit = new ArrayList();
        for (int i = 0; i < pgsToEdit.length; i++)
            pagesToEdit.add(new Integer(pgsToEdit[i]));

        PdfReader reader = new PdfReader(tempFile.getAbsolutePath());

        boolean applyToCurrent = cropPage.applyToCurrentCrop();

        for (int page = 1; page <= pageCount; page++) {
            if (pagesToEdit.contains(new Integer(page))) {

                float currentLeftCrop = currentPageData.getCropBoxX(page);
                float currentBottomCrop = currentPageData.getCropBoxY(page);
                float currentRightCrop = currentPageData.getCropBoxWidth(page) + currentLeftCrop;
                float currentTopCrop = currentPageData.getCropBoxHeight(page) + currentBottomCrop;

                float[] newCrop = cropPage.getCrop();

                if (applyToCurrent) {
                    newCrop[0] = currentLeftCrop + newCrop[0];
                    newCrop[1] = currentBottomCrop + newCrop[1];
                    newCrop[2] = currentRightCrop - newCrop[2];
                    newCrop[3] = currentTopCrop - newCrop[3];
                } else {
                    newCrop[2] = reader.getPageSize(page).width() - newCrop[2];
                    newCrop[3] = reader.getPageSize(page).height() - newCrop[3];
                }

                reader.getPageN(page).put(PdfName.CROPBOX, new PdfArray(newCrop));
            }
        }

        PdfStamper stamp = new PdfStamper(reader, new FileOutputStream(selectedFile));
        stamp.close();

    } catch (Exception e) {

        ObjectStore.copy(tempFile.getAbsolutePath(), selectedFile);

        e.printStackTrace();

    } finally {
        tempFile.delete();
    }
}