PDF manipulation with CF8

I usually post questions here, but I wanted to post something cool about CF8 for a change...
I was trying to utilize our newly acquired CF8 for dynamically generating invoices from a flex program I wrote. Creating a form and filling in the fields was easy enough, but I needed something a bit more. I needed to be able to place formatted text on the page in places that didn't have fields. Essentially what I needed to do was a merge, but not the type that takes two 1 page PDFs and makes one 2 page PDF, but one that takes one PDF and lays it on top of another PDF on the same page. Well, low and behold, after searching the Internet getting clues from here and there (can't remember exactly where, but I'll give general credit out to whoever helped), I figured it out.
I can now take a template PDF form and fill it in with data from a query, place a HTML page over the top of that so I can use colors, images, whatever, then merge the whole thing together and deliver a flattened PDF document to the user. CF8 is turning out to be quite powerful!
The trick was creating a PDF document in memory out of HTML using absolutely positioned DIVs to place the text where I wanted it on the final PDF. Then use a PDF form, filled in from my query as a watermark above the HTML pdf. This watermark is set at full opacity, but the background is transparent, so it lays over the HTML page perfectly. When the whole thing is flattened, saved and loaded back into the browser, I have my completed form with HTML text positioned exactly where I want it in whatever font, color, style or any other HTML element I need. Even these HTML elements can be driven from the query data.
I know there are problems with this as the user could remove the watermark and the whole thing would be gone, but I couldn't figure out how to use an in memory PDF file as the watermark... (anybody know the answer to that one?)
Fun stuff!
Matt

Interesting approach!
TransoniqHacker wrote:
 I know there are problems with this as the user could remove the watermark and the whole thing would be gone, but I couldn't figure out how to use an in memory PDF file as the watermark... (anybody know the answer to that one?)  
You mean cfpdf would not accept a pdf variable, it required a physical file? You could always use iText (java library used by cfdocument internally) if it is really needed..

Similar Messages

  • Hyphenation & text-align:justify in PDF's with CFDOCUMENT

    Hello everybody!
    We are using CF8.1 and are having problems of generating well designed PDF outputs with CFDOCUMENT. We would like to print out reports, which are hyphenated and have the text aligned. Example:
    This works fine:
    <html lang="en">
    <STYLE>p { width:260px;background-color:blue;-moz-hyphens: auto; -o-hyphens: auto; -webkit-hyphens: auto; -ms-hyphens: auto;  -hyphens: auto;text-align:justify}</STYLE>
    <P>Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer</P>
    </html>
    This won't:
    <CFDOCUMENT FORMAT="PDF">
    <html lang="en">
          <STYLE>p { width:260px;background-color:blue;-moz-hyphens: auto; -o-hyphens: auto; -webkit-hyphens: auto; -ms-hyphens: auto;  -hyphens: auto;text-align:justify}</STYLE>
          <P>Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer Haematodynamometer</P>
    </html>
    </CFDOCUMENT>
    Do you have any solutions on this topics? Are do I have to wait until CF11.
    Thanks in advance
    Matthias

    4tun8mom wrote:
    Now, the problem is that, while the client likes this, they don't like that the headers and footers are grayed out and the colors are not as vibrant in Word as the program part I created and saved as a PDF.
    They're being a bit impractical in their complaints, in fact they remind me of my Dad!  The final product is still fine.
    4tun8mom wrote:
    They also don't like that if we keep this as a Word document, all the text is editable.
    That's fair enough, the solution would be to make the text in the header and footer an image instead.
    4tun8mom wrote:
    So my question is, can I create a PDF that has the same features with the expandable text control boxes.  If I can, would you recommend InDesign to do this?
    No you can't.  I'm pretty sure you can't create a PDF with expandable boxes and I'm very sure that you can't create a PDF that will add pages with headers and footrs.  However you can create a PDF with basic fillable text boxes, they're called forms and you need Acrobat as well to do it, google it and you'll find plenty of info.

  • Manipulate plain pdf files with ADS

    Hi experts,
    We are struggling with following requirement:
    Within a webdynpro application plain pdf files (transferred dayly to the servers file system) may be accessed and viewed.
    The pdf should be viewed without any rights to print and save.
    The trouble is - the pdf files are printable and saveable but can not be manipulated before this step.
    We are using NW 7.01 and WD for Java.
    To solve this we configured ADS an tried to convert the PDF using the clientserver.adobe.pdfdocument.api.
    Yet we found no way to rewrite our pdf files with the api.
    Looking through serveral forums did not give us a hint.
    Are we going the wrong way?
    Did we assume falsely that we can manipulate plain pdf files via ADS?
    Thanks' and kind regards,
    Horst

    Hi Dezso,
    thank you for this information! So don't need to invest more time in research.
    As I understand the ADS is designed for forms and workflow stuff.
    On the other hand to have such a powerfull tool like ADS which can not perform such simple actions like manipulation of non ADS generated pdf appears to me quite sad.
    @Otto: As stated above - take a (non ads generated) pdf (e. g. from file system), add/remove rights and view it in a WD. No need of interactive form, template or data if not necessary.
    Best regards,
    Horst

  • Large pdf(40MB) with 600 pages color quality is poor if i print more than 1 or 2 pages at a time.

    I have a 40MB PDF file with over 600 pages of color images. If i print each page one at a time, there is no issue whatsoever with the quality, but if i print say 5 pages, the 4th and 5th page and any subsequent page will look like rubbish. In general, just not the same color quality as before. The Konica Minolta printer doesn't seem to be at fault here because like i mentioned, this problem does not occur if i print individual sheets, just if i print more than 5 or so.
    Printing individual sheets in this instance, however, is not a real solution because in all the job will have many thousand pages. What do i do? Any one here experience a similar problem?

    You were able to catch me whilst my Konica Minolta tech was here.
    This is my take on his diagnosis,
    The c353 while capable of quality output is not exactly a robust production level machine.
    Without the aid of a RIP, all the processing needs to happen either in memory or it may have a hdd. Does the machine have a hard drive?
    In either case, you are running out of memory.
    Changing the printers properties on spooling may aid in completing the job.
    He mentioned sending the job as raster. Print as Image from Acrobat's Advanced tab would do that, but I think you would cripple your computer doing such. Try it; be prepared to go out to lunch or something while it churns away.
    hth

  • SVG in pdf created with FOP

    Hello,
    is it possible to include SVG`s to a pdf report, which is created with FOP?
    I read something like Batik....
    Does anybody have any experiences about that?
    Thanks,
    Tim

    Thank you, CtDave, for your speedy reply and for the 'Acrobat Technical Evangelist' knowledge base article. Word 2000 is one of Microsoft's masterpieces - by disabling 'autosave', the application is totally stable, does not require 'activation' by Microsoft. Acrobat 9 enables 'saving' of interactive .pdf forms, a most valuable feature and one much appreciated by anyone completiing such forms. There must be more to this issue than 'incompatibility', because I can create a test Word 2000 document, hyperlink a valid URL, convert to .pdf with Acrobat 9, and the hyperlink works fine in Acrobat 9. When I attempt to do this using a much more complex Word 2000 document, embedded with scores of hyperlinks, these links fail to work following conversion to .pdf with Acrobat 9, but work fine following conversion to .pdf with  Acrobat 6. I can then use Acrobat 9 to open the .pdf created with Acrobat 6, and successfully edit any of these fully functional hyperlinks using the 'Link tool'. I don't know who prepared the 'Acrobat Technical Evangelist' article (AF1908DCd01) - no credits were cited, and I'm far from certain that this authentically belongs to Adobe's knowledge base. So I appreciate your sharing this information with me, but I cannot say that my question has been definitively answered. If you have any further information or tips, please reply in this thread. /rmbrown

  • I have created a PDF form with field but for some reason I cant type in them

    I have created a PDF form with field but for some reason I cant type in them

    May be that the text fields are read-only.

  • A PDF document with links to other PDFs corrupts the URL and get 404. Works in IE.

    One of our supplier sites has manuals online that are PDF docs with links from one to another. For example, when I click on "Tanaka" I get a PDF menu of Tanaka service manuals, etc. When I click on a section, such as "Chainsaw" I get a 404. Part of the directory structure in the URL is missing. For example when in the Tanaka PDF menu I click on Chainsaw I go to http://www.parklands.net/Resources/Tana%20CSaw%20Menu.pdf which is wrong. It should be http://www.parklands.net/Resources/Tanaka/Tana%20CSaw%20Menu.pdf, and in IE it is.
    == URL of affected sites ==
    http://

    The linked documents will not be automatically converted to PDFs and merged
    with your file, neither in Acrobat Standard nor in Acrobat Pro. You can do
    it, but you'll need to do it manually by converting all the files to PDFs,
    merging them and then adding the links between them.

  • A PDF document with information about activation for CS6 software

    Here's a PDF document with information about activation for CS6 software.
    I found it very useful for understanding how the system worked for activation of perpetual licenses, both in cases where the computer is and isn't connected to the Internet.

    Ann, with some browsers, the PDF document will download in the background rather than appear in a browser window.

  • Word 2000 hyperlinks don't work in .pdf created with Acrobat 9 Pro

    I'm new to Adobe Forums, so please overlook the effrontery of my posting a query previously discussed. Perhaps someone can simply reply with a link to the prior discussion. I have installed Acrobat 9.2 Pro in 2 computers, one running XP64 Pro, the other XP32 Pro. Word 2000 is installed in both. All Word hyperlinks work fine, but after .pdf conversion using Acrobat 9.2 Pro, none of these work. In 'Preferences', I have navigated Convert to PDF > Microsoft Office Office Word > Edit Settings > Add Links to Adobe PDF File and confirmed that the Add Links feature is enabled. Having ascertained that this glitch is not specific to either XP64 or XP32 operating systems, I uninstalled Acrobat 9.2 Pro from the XP32 computer and reinstalled Acrobat 6.1 Pro. Then using the same Word 2000 document, I converted to .pdf using Acrobat 6.1 Pro, with no problems whatsoever. This looks like a serious bug in Acrobat 9 Pro, which the telephone support folks have acknowledged. Alas, they won't give me the tiniest clue how to resolve it, nor any workaround, but merely refer me to AdobeForums.com for help. I suspect a corrective patch or 'upgrade' will be forthcoming, but meanwhile, if anyone knows of a workaround, please enlighten me. Thanks. /rmbrown

    Thank you, CtDave, for your speedy reply and for the 'Acrobat Technical Evangelist' knowledge base article. Word 2000 is one of Microsoft's masterpieces - by disabling 'autosave', the application is totally stable, does not require 'activation' by Microsoft. Acrobat 9 enables 'saving' of interactive .pdf forms, a most valuable feature and one much appreciated by anyone completiing such forms. There must be more to this issue than 'incompatibility', because I can create a test Word 2000 document, hyperlink a valid URL, convert to .pdf with Acrobat 9, and the hyperlink works fine in Acrobat 9. When I attempt to do this using a much more complex Word 2000 document, embedded with scores of hyperlinks, these links fail to work following conversion to .pdf with Acrobat 9, but work fine following conversion to .pdf with  Acrobat 6. I can then use Acrobat 9 to open the .pdf created with Acrobat 6, and successfully edit any of these fully functional hyperlinks using the 'Link tool'. I don't know who prepared the 'Acrobat Technical Evangelist' article (AF1908DCd01) - no credits were cited, and I'm far from certain that this authentically belongs to Adobe's knowledge base. So I appreciate your sharing this information with me, but I cannot say that my question has been definitively answered. If you have any further information or tips, please reply in this thread. /rmbrown

  • I have created a PDF form with multiple drop downs, all with the same drop down values. When I select a value from 1 of the drop down fields, it replicates in all of the others - which I do not want. How can I fix this?

    I have created a PDF form with multiple drop downs, all with the same drop down values. When I select a value from 1 of the drop down fields, it replicates in all of the others - which I do not want. Can I fix this?

    I'm fairly new to this, but I think it has to do with the way you have the drop downs named. Did you copy one then keep pasting it in each field? If so, that is the problem. You should rename each one with a different number: Dropdown1, Dropdown2, etc. I think that might solve the issue.

  • I cannot open a pdf file with aole-mail. I can open pdf files from windows explorer. I have associated pdf with adobe reader. My operating system is window

    I cannot open a pdf file with aol e-mail. I went to preferences in Adobe Reader but did not know what to enter for Incoming IMAP and outgoing SMTP. I can open pdf files from windows explorer as  I have associated .pdf files with adobe reader. My operating system is windows 7.
    When I try to open the pdf file within aol e-mail I get a message: 'Your security settings do not allow this file to be downloaded'.  I have not changed my security settings (Tools, Internet Options, security).

    Or http://helpx.adobe.com/acrobat/kb/pdf-browser-plugin-configuration.html

  • Extract PDF pages with it's actual page numbers...

    Hi scripting gurus,
    We have more than 40 of PDF documents each document contain multiple pages. Using Acrobat Professional 7.0 and 8.0 with MAC platform. We have the script to extract the pages and to suffix running numbers with the document name, please find the script below. For example CH01.pdf document total number of pages is 10, but the actual page number starts with 11. So We have to extract each pages as individual documents and the page number will followed by document name with "_" separation, (Eg: CH01_11.pdf). I have tried so many ways to include the page numbers with the document name but i can't.
    /*Split pdf pages with pNum suffixed*/
    var rename = /.*\/|\.pdf$/ig;
    var startName = this.path.replace(rename,"");
    for (var i = 1, j = 0; j < numPages; i += 1, j += 1) {
    extractPages ({
    nStart : j,
    nEnd : j == numPages - 1 ? j : j + 0,
    cPath : "/Macintosh HD/Users/Beaconpmg/Desktop/ExtractFolder/"+startName+"_"+i+".pdf"
    So please can anyone look into this and help for me.
    Thanks in advance.
    Regards
    Thiyagu

    try67
    First of all, replace numPages with this.numPages
    Also, this doesn't make any sense:
    nEnd : i == numPages - 1
    I have tried what you have said above, but it is not working. Its showing the same error (missing ; before statement)in 4th line of the script.
    Please find the complete code below;
    // see if we need to define a global offset first file
    if(global.fPageOffset == undefined) {
    var global.fPageOffset = 10; // start at 10
    /*Split pdf pages with pNum suffixed*/
    var rename = /.*\/|\.pdf$/ig;
    var startName = this.path.replace(rename,"");
    for (var i = 0; i < this.numPages; i++) { this.extractPages ({ nStart : i, nEnd : i == this.numPages - 1 , cPath : "/Macintosh HD/Users/Beaconpmg/Desktop/ExtractFolder/" + startName + "_" + (i + global.PageOffset) + ".pdf" }); }
    // add finished file's number of pages to global page offest
    global.fPageOffest += this.numPages;
    Regards
    Thiyagu

  • Generate a new pdf report with itens on my pdf form

    Hi! My name is Heitor.
    I have Adobe Forms Central and Adobe Acrobat XI Pro installed on my machine.
    I would like to know if its possible to make a pdf report.
    Example: Clicking in a button "print" on my already open and filled pdf form, and gathering all my 30 itens (see that i am only showing 5 itens on my form. but on my form exists a "Add" button to add itens on variables) on a dropdown list and generating a new pdf report with all these itens listed.
    Thanks!
    Heitor Teixeira
    www.heitorteixeira.com

    Hi! My name is Heitor.
    I have Adobe Forms Central and Adobe Acrobat XI Pro installed on my machine.
    I would like to know if its possible to make a pdf report.
    Example: Clicking in a button "print" on my already open and filled pdf form, and gathering all my 30 itens (see that i am only showing 5 itens on my form. but on my form exists a "Add" button to add itens on variables) on a dropdown list and generating a new pdf report with all these itens listed.
    Thanks!
    Heitor Teixeira
    www.heitorteixeira.com

  • Want to Send smartform as pdf attachment with a Email to some mail id

    Hi ,
    I want to send a smartform as a PDF attachment with a mail to a mail id. And I can send a mail with the PDF attachment.
    But I am not able to open the PDF. It is throwing some error (Adobe reader could not open u2018fileu2019 because it is either not a supported file type or because the file has been damaged (for example , it was sent as an email attachment and was not correctly decoded)).
    By debugging I come to know that the file which is generating is in some encoding format.
    Please help me regard this. This is very urgent.
    here is the code,
    Main Program :
    REPORT Ztest_report.
    *--Top Include for Global Data Declarations.
    INCLUDE ztest_report_top.
    *--Form Include for Form Routines.
    INCLUDE ztest_report_form.
    START-OF-SELECTION.
    START-OF-SELECTION.
    *--Display data
      Perform display_data.
    END-OF-SELECTION.
    Top declaration :
    Internal table
    DATA :  i_otfdata TYPE tsfotf,          " Smart Forms: Table OTF
            i_tline TYPE TABLE OF tline WITH HEADER LINE,
            i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE,
            i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,
    Objects to send mail.
            i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
            i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
    Work Area declarations
            w_mailaddr TYPE ppfdmailad,
            w_mailtype TYPE so_escape,
            w_mailrecipient TYPE swotobjid,
            w_control TYPE ssfctrlop,
            w_compop TYPE ssfcompop,
            w_return TYPE ssfcrescl,
            wa_doc_chng TYPE sodocchgi1,
            w_data TYPE sodocchgi1,
            wa_buffer TYPE string, "To convert from 132 to 255
            wa_objhead TYPE soli_tab,
    Variables declarations
            v_form_name TYPE rs38l_fnam,
            v_len_in LIKE sood-objlen,
            v_len_out LIKE sood-objlen,
            v_len_outn TYPE i,
            v_lines_txt TYPE i,
            v_lines_bin TYPE i.
    Selection Screen
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-009.
    PARAMETER:      p_bukrs TYPE bukrs OBLIGATORY,            "Company Code
                    p_belnr TYPE belnr_d OBLIGATORY,          "Document No
                    p_gjahr TYPE gjahr OBLIGATORY,            "document type
                    p_mailid(50) TYPE c OBLIGATORY.
    "Mail Id
    SELECTION-SCREEN END OF BLOCK blk1.
    Form Logic :
    FORM display_data.
    *Local Variable declaration
      DATA: lc_fm TYPE rs38l_fnam,       "local variable to store the
            l_i_document_output_info TYPE ssfcrespd,
            l_i_struc_job_output_info TYPE ssfcrescl,
            l_i_struc_job_output_options TYPE ssfcrescl,
            i_lines TYPE TABLE OF tline WITH HEADER LINE,
            lv_job_output_info      TYPE ssfcrescl,
            lv_document_output_info TYPE ssfcrespd,
            lv_job_output_options   TYPE ssfcresop,
            lv_bin_filesize         LIKE sood-objlen.
    Determine the smartform name
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
           EXPORTING
                formname           = 'ZTEST_SMARTFORM'
           IMPORTING
                fm_name            = lc_fm
           EXCEPTIONS
                no_form            = 1
                no_function_module = 2
                OTHERS             = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      w_control-getotf = 'X'.
      w_control-no_dialog = 'X'.
      w_control-preview = space.
    w_control-device = 'MAIL'.
    Call the smartform and pass the selection screen parameter
      CALL FUNCTION lc_fm
           EXPORTING
                control_parameters = w_control
                output_options     = w_compop
                user_settings      = 'X'
                t_bukrs            = p_bukrs
                t_belnr            = p_belnr
                t_gjahr            = p_gjahr
           IMPORTING
                job_output_info    = l_i_struc_job_output_info
           EXCEPTIONS
                formatting_error   = 1
                internal_error     = 2
                send_error         = 3
                user_canceled      = 4
                OTHERS             = 5.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Moving the Smart Forms: Table OTF into an internal table
      i_otfdata[] = l_i_struc_job_output_info-otfdata[].
    CONVERT TO OTF TO PDF.
      CALL FUNCTION 'CONVERT_OTF'
           EXPORTING
                format                = 'PDF'
                max_linewidth         = 132
           IMPORTING
                bin_filesize          = lv_bin_filesize
           TABLES
                otf                   = i_otfdata
                lines                 = i_lines
           EXCEPTIONS
                err_max_linewidth     = 1
                err_format            = 2
                err_conv_not_possible = 3
                err_bad_otf           = 4
                OTHERS                = 5.
    IF sy-batch EQ l_c_no.
    To directly view the print-preview in PDF format
      CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
           EXPORTING
                i_otf                    = i_otfdata
           EXCEPTIONS
                convert_otf_to_pdf_error = 1
                cntl_error               = 2
                OTHERS                   = 3.
    For Sending the PDF file to a Mail ID.
    LOOP AT i_lines.
       TRANSLATE i_lines USING '~'.
       CONCATENATE wa_buffer i_lines INTO wa_buffer.
    ENDLOOP.
    TRANSLATE wa_buffer USING '~'.
    DO.
       i_record = wa_buffer.
       APPEND i_record.
       SHIFT wa_buffer LEFT BY 255 PLACES.
       IF wa_buffer IS INITIAL.
         EXIT.
       ENDIF.
    ENDDO.
      DATA: BEGIN OF zlines OCCURS 0,
      tline TYPE char255,
      END OF zlines.
    *Change the PDF format from 132 to 255.
      CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
           EXPORTING
                transfer_bin                = 'X'
           TABLES
                content_in                  = i_lines
                content_out                 = zlines
           EXCEPTIONS
                err_line_width_src_too_long = 1
                err_line_width_dst_too_long = 2
                err_conv_failed             = 3
                OTHERS                      = 4.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
        WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Attachment
      REFRESH: i_reclist,
      i_objtxt,
      i_objbin,
      i_objpack.
      CLEAR wa_objhead.
      i_objbin[] = zlines[].
    Create Message Body Title and Description
      i_objtxt = 'test with pdf-Attachment!'.
      APPEND i_objtxt.
      DESCRIBE TABLE i_objtxt LINES v_lines_txt.
      READ TABLE i_objtxt INDEX v_lines_txt.
      wa_doc_chng-obj_name = 'smartform'.
      wa_doc_chng-expiry_dat = sy-datum + 10.
      wa_doc_chng-obj_descr = 'smartform'.
      wa_doc_chng-sensitivty = 'F'.
      wa_doc_chng-doc_size = v_lines_txt * 255.
    Main Text
      CLEAR i_objpack-transf_bin.
      i_objpack-head_start = 1.
      i_objpack-head_num = 1.
      i_objpack-body_start = 2.
      i_objpack-body_num = v_lines_txt.
      i_objpack-doc_type = 'RAW'.
      APPEND i_objpack.
    Attachment (pdf-Attachment)
      i_objpack-transf_bin = 'X'.
      i_objpack-head_start = 1.
      i_objpack-head_num = 1.
      i_objpack-body_start = 2.
    I_OBJPACK-DOC_TYPE = 'RAW'.
      DESCRIBE TABLE i_objbin LINES v_lines_bin.
      READ TABLE i_objbin INDEX v_lines_bin.
      i_objpack-doc_size = v_lines_bin * 255 .
      i_objpack-body_num = v_lines_bin.
      i_objpack-doc_type = 'PDF'.
      i_objpack-obj_name = 'smart'.
      i_objpack-obj_descr = 'test'.
      APPEND i_objpack.
      CLEAR i_reclist.
      i_reclist-receiver = p_mailid.
      i_reclist-rec_type = 'U'.
      APPEND i_reclist.
    Send new document with attachments via RFC
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                document_data              = wa_doc_chng
                put_in_outbox              = 'X'
                commit_work                = 'X'
           TABLES
                packing_list               = i_objpack
                object_header              = wa_objhead
                contents_bin               = i_objbin
                contents_txt               = i_objtxt
                receivers                  = i_reclist
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
      IF sy-subrc <> 0.
        WRITE:/ 'Error When Sending the File', sy-subrc.
      ELSE.
        WRITE:/ 'Mail sent'.
      ENDIF.
    ENDFORM.                    " display_data

    hi,
    i wrote a programm.for me it is working.i think it will help for u.
    DATA: t_otfdata TYPE ssfcrescl,
          t_lines LIKE tline OCCURS 0 WITH HEADER LINE,
          t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,
          t_RECORD LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
    Objects to send mail.
    DATA:T_OBJPACK LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE,
         T_OBJTXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
         T_OBJBIN LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE,
         T_RECLIST LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.
    DATA: w_filesize TYPE i,
          w_bin_filesize TYPE i,
          wa_ctrlop TYPE ssfctrlop,
          wa_outopt TYPE ssfcompop,
          WA_BUFFER TYPE STRING,          "To convert from 132 to 255
          WA_OBJHEAD TYPE SOLI_TAB,
          WA_DOC_CHNG TYPE SODOCCHGI1,
          W_DATA TYPE SODOCCHGI1.
    DATA: form_name TYPE rs38l_fnam,
          V_LINES_TXT TYPE I,
          V_LINES_BIN TYPE I,
          nast-spras type sy-langu value 'DE'.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        FORMNAME                 = 'ZSR_DEMO1'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
    IMPORTING
       FM_NAME                  = form_name
    EXCEPTIONS
       NO_FORM                  = 1
       NO_FUNCTION_MODULE       = 2
       OTHERS                   = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    wa_ctrlop-LANGU = nast-spras.
    wa_ctrlop-getotf = 'X'.
    wa_ctrlop-no_dialog = 'X'.
    wa_outopt-tdnoprev = 'X'.
    CALL FUNCTION form_name
      EXPORTING
      ARCHIVE_INDEX              =
      ARCHIVE_INDEX_TAB          =
      ARCHIVE_PARAMETERS         =
       CONTROL_PARAMETERS         = wa_ctrlop
      MAIL_APPL_OBJ              =
      MAIL_RECIPIENT             =
      MAIL_SENDER                =
       OUTPUT_OPTIONS             = wa_outopt
       USER_SETTINGS              = 'X'
    IMPORTING
      DOCUMENT_OUTPUT_INFO       =
       JOB_OUTPUT_INFO            = t_otfdata
      JOB_OUTPUT_OPTIONS         =
    EXCEPTIONS
       FORMATTING_ERROR           = 1
       INTERNAL_ERROR             = 2
       SEND_ERROR                 = 3
       USER_CANCELED              = 4
       OTHERS                     = 5
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    t_otf[] = t_otfdata-otfdata[].
    CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
       FORMAT                      = 'PDF'
       MAX_LINEWIDTH               = 132
      ARCHIVE_INDEX               = ' '
      COPYNUMBER                  = 0
      ASCII_BIDI_VIS2LOG          = ' '
      PDF_DELETE_OTFTAB           = ' '
    IMPORTING
       BIN_FILESIZE                = w_bin_filesize
      BIN_FILE                    =
      TABLES
        OTF                         = t_otf
        LINES                       = t_lines
    EXCEPTIONS
       ERR_MAX_LINEWIDTH           = 1
       ERR_FORMAT                  = 2
       ERR_CONV_NOT_POSSIBLE       = 3
       ERR_BAD_OTF                 = 4
       OTHERS                      = 5
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    loop at t_lines.
    TRANSLATE t_lines USING '~'.
      CONCATENATE WA_BUFFER T_LINES INTO WA_BUFFER.
    ENDLOOP.
    TRANSLATE WA_BUFFER USING '~'.
    DO.
      t_RECORD = WA_BUFFER.
      APPEND t_RECORD.
      SHIFT WA_BUFFER LEFT BY 255 PLACES.
      IF WA_BUFFER IS INITIAL.
        EXIT.
      ENDIF.
    ENDDO.
    Attachment
    REFRESH: T_RECLIST,
    T_OBJTXT,
    T_OBJBIN,
    T_OBJPACK.
    CLEAR WA_OBJHEAD.
    T_OBJBIN[] = T_RECORD[].
    Create Message Body Title and Description
    T_OBJTXT = 'test with pdf-Attachment!'.
    APPEND T_OBJTXT.
    DESCRIBE TABLE T_OBJTXT LINES V_LINES_TXT.
    READ TABLE T_OBJTXT INDEX V_LINES_TXT.
    WA_DOC_CHNG-OBJ_NAME = 'smartform'.
    WA_DOC_CHNG-EXPIRY_DAT = SY-DATUM + 10.
    WA_DOC_CHNG-OBJ_DESCR = 'smartform'.
    WA_DOC_CHNG-SENSITIVTY = 'F'.
    WA_DOC_CHNG-DOC_SIZE = V_LINES_TXT * 255.
    Main Text
    CLEAR T_OBJPACK-TRANSF_BIN.
    T_OBJPACK-HEAD_START = 1.
    T_OBJPACK-HEAD_NUM = 0.
    T_OBJPACK-BODY_START = 1.
    T_OBJPACK-BODY_NUM = V_LINES_TXT.
    T_OBJPACK-DOC_TYPE = 'RAW'.
    APPEND T_OBJPACK.
    Attachment (pdf-Attachment)
    T_OBJPACK-TRANSF_BIN = 'X'.
    T_OBJPACK-HEAD_START = 1.
    T_OBJPACK-HEAD_NUM = 0.
    T_OBJPACK-BODY_START = 1.
    DESCRIBE TABLE T_OBJBIN LINES V_LINES_BIN.
    READ TABLE T_OBJBIN INDEX V_LINES_BIN.
    T_OBJPACK-DOC_SIZE = V_LINES_BIN * 255 .
    T_OBJPACK-BODY_NUM = V_LINES_BIN.
    T_OBJPACK-DOC_TYPE = 'PDF'.
    T_OBJPACK-OBJ_NAME = 'smart'.
    T_OBJPACK-OBJ_DESCR = 'test'.
    APPEND T_OBJPACK.
    CLEAR T_RECLIST.
    T_RECLIST-RECEIVER = 'mail id'.
    T_RECLIST-REC_TYPE = 'U'.
    APPEND T_RECLIST.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
      EXPORTING
        DOCUMENT_DATA              = WA_DOC_CHNG
        PUT_IN_OUTBOX              = 'X'
        COMMIT_WORK                = 'X'
      TABLES
        PACKING_LIST               = T_OBJPACK
        OBJECT_HEADER              = WA_OBJHEAD
        CONTENTS_BIN               = T_OBJBIN
        CONTENTS_TXT               = T_OBJTXT
        RECEIVERS                  = T_RECLIST
      EXCEPTIONS
        TOO_MANY_RECEIVERS         = 1
        DOCUMENT_NOT_SENT          = 2
        DOCUMENT_TYPE_NOT_EXIST    = 3
        OPERATION_NO_AUTHORIZATION = 4
        PARAMETER_ERROR            = 5
        X_ERROR                    = 6
        ENQUEUE_ERROR              = 7
        OTHERS                     = 8.
    IF SY-SUBRC <> 0.
      WRITE:/ 'Error When Sending the File', SY-SUBRC.
    ELSE.
      WRITE:/ 'Mail sent'.
    ENDIF.
    please reward me if helpful.

  • Writing a java program for generating .pdf file with the data of MS-Excel .

    Hi all,
    My object is write a java program so tht...it'll generate the .pdf file after retriving the data from MS-Excel file.
    I used POI HSSF to read the data from MS-Excel and used iText to generate .pdf file:
    My Program is:
    * Created on Apr 13, 2005
    * TODO To change the template for this generated file go to
    * Window - Preferences - Java - Code Style - Code Templates
    package forums;
    import java.io.*;
    import java.awt.Color;
    import com.lowagie.text.*;
    import com.lowagie.text.pdf.*;
    import com.lowagie.text.Font.*;
    import com.lowagie.text.pdf.MultiColumnText;
    import com.lowagie.text.Phrase.*;
    import net.sf.hibernate.mapping.Array;
    import org.apache.poi.hssf.*;
    import org.apache.poi.poifs.filesystem.*;
    import org.apache.poi.hssf.usermodel.*;
    import com.lowagie.text.Phrase.*;
    import java.util.Iterator;
    * Generates a simple 'Hello World' PDF file.
    * @author blowagie
    public class pdfgenerator {
         * Generates a PDF file with the text 'Hello World'
         * @param args no arguments needed here
         public static void main(String[] args) {
              System.out.println("Hello World");
              Rectangle pageSize = new Rectangle(916, 1592);
                        pageSize.setBackgroundColor(new java.awt.Color(0xFF, 0xFF, 0xDE));
              // step 1: creation of a document-object
              //Document document = new Document(pageSize);
              Document document = new Document(pageSize, 132, 164, 108, 108);
              try {
                   // step 2:
                   // we create a writer that listens to the document
                   // and directs a PDF-stream to a file
                   PdfWriter writer =PdfWriter.getInstance(document,new FileOutputStream("c:\\weeklystatus.pdf"));
                   writer.setEncryption(PdfWriter.STRENGTH128BITS, "Hello", "World", PdfWriter.AllowCopy | PdfWriter.AllowPrinting);
    //               step 3: we open the document
                             document.open();
                   Paragraph paragraph = new Paragraph("",new Font(Font.TIMES_ROMAN, 13, Font.BOLDITALIC, new Color(0, 0, 255)));
                   POIFSFileSystem pofilesystem=new POIFSFileSystem(new FileInputStream("D:\\ESM\\plans\\weekly report(31-01..04-02).xls"));
                   HSSFWorkbook hbook=new HSSFWorkbook(pofilesystem);
                   HSSFSheet hsheet=hbook.getSheetAt(0);//.createSheet();
                   Iterator rows = hsheet.rowIterator();
                                  while( rows.hasNext() ) {
                                       Phrase phrase=new Phrase();
                                       HSSFRow row = (HSSFRow) rows.next();
                                       //System.out.println( "Row #" + row.getRowNum());
                                       // Iterate over each cell in the row and print out the cell's content
                                       Iterator cells = row.cellIterator();
                                       while( cells.hasNext() ) {
                                            HSSFCell cell = (HSSFCell) cells.next();
                                            //System.out.println( "Cell #" + cell.getCellNum() );
                                            switch ( cell.getCellType() ) {
                                                 case HSSFCell.CELL_TYPE_STRING:
                                                 String stringcell=cell.getStringCellValue ()+" ";
                                                 writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
                                                 phrase.add(stringcell);
                                            // document.add(new Phrase(string));
                                                      System.out.print( cell.getStringCellValue () );
                                                      break;
                                                 case HSSFCell.CELL_TYPE_FORMULA:
                                                           String stringdate=cell.getCellFormula()+" ";
                                                           writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
                                                           phrase.add(stringdate);
                                                 System.out.print( cell.getCellFormula() );
                                                           break;
                                                 case HSSFCell.CELL_TYPE_NUMERIC:
                                                 String string=String.valueOf(cell.getNumericCellValue())+" ";
                                                      writer.setSpaceCharRatio(PdfWriter.NO_SPACE_CHAR_RATIO);
                                                      phrase.add(string);
                                                      System.out.print( cell.getNumericCellValue() );
                                                      break;
                                                 default:
                                                      //System.out.println( "unsuported sell type" );
                                                      break;
                                       document.add(new Paragraph(phrase));
                                       document.add(new Paragraph("\n \n \n"));
                   // step 4: we add a paragraph to the document
              } catch (DocumentException de) {
                   System.err.println(de.getMessage());
              } catch (IOException ioe) {
                   System.err.println(ioe.getMessage());
              // step 5: we close the document
              document.close();
    My Input from MS-Excel file is:
         Planning and Tracking Template for Interns                                                                 
         Name of the Intern     N.Kesavulu Reddy                                                            
         Project Name     Enterprise Sales and Marketing                                                            
         Description     Estimated Effort in Hrs     Planned/Replanned          Actual          Actual Effort in Hrs     Complexity     Priority     LOC written new & modified     % work completion     Status     Rework     Remarks
    S.No               Start Date     End Date     Start Date     End Date                                        
    1     setup the configuration          31/01/2005     1/2/2005     31/01/2005     1/2/2005                                        
    2     Deploying an application through Tapestry, Spring, Hibernate          2/2/2005     2/2/2005     2/2/2005     2/2/2005                                        
    3     Gone through Componentization and Cxprice application          3/2/2005     3/2/2005     3/2/2005     3/2/2005                                        
    4     Attend the sessions(tapestry,spring, hibernate), QBA          4/2/2005     4/2/2005     4/2/2005     4/2/2005                                        
         The o/p I'm gettint in .pdf file is:
    Planning and Tracking Template for Interns
    N.Kesavulu Reddy Name of the Intern
    Enterprise Sales and Marketing Project Name
    Remarks Rework Status % work completion LOC written new & modified Priority
    Complexity Actual Effort in Hrs Actual Planned/Replanned Estimated Effort in Hrs Description
    End Date Start Date End Date Start Date S.No
    38354.0 31/01/2005 38354.0 31/01/2005 setup the configuration 1.0
    38385.0 38385.0 38385.0 38385.0 Deploying an application through Tapestry, Spring, Hibernate
    2.0
    38413.0 38413.0 38413.0 38413.0 Gone through Componentization and Cxprice application
    3.0
    38444.0 38444.0 38444.0 38444.0 Attend the sessions(tapestry,spring, hibernate), QBA 4.0
                                       The issues i'm facing are:
    When it is reading a row from MS-Excel it is writing to the .pdf file from last cell to first cell.( 2 cell in 1 place, 1 cell in 2 place like if the row has two cells with data as : Name of the Intern: Kesavulu Reddy then it is writing to the .pdf file as Kesavulu Reddy Name of Intern)
    and the second issue is:
    It is not recognizing the date format..it is recognizing the date in first row only......
    Plz Tell me wht is the solution for this...
    Regards
    [email protected]

    Don't double post your question:
    http://forum.java.sun.com/thread.jspa?threadID=617605&messageID=3450899#3450899
    /Kaj

Maybe you are looking for

  • Can't print to Adobe

    Trying to print a non-Adobe file to Adobe PDF...Goes through the whole thing, then spits out this message in Notepad: %%[ ProductName: Distiller ]%% %%[Page: 1]%% %%[Page: 2]%% %%[Page: 3]%% %%[Page: 4]%% %%[Page: 5]%% %%[Page: 6]%% %%[Page: 7]%% %%[

  • How to remove QuickTime Icon from systray of Windows ME

    Attempted to install QuickTime in response to its solicitation,but its download program stated it could not be installed on ME. However, its Icon was placed in my Systray and every time I boot up now the system seems to try to read the hard drive for

  • ?? How does a G4 Quicksilver 2002 input S video from an S video VCR ??

    ?? How does a G4 Quicksilver 2002 input S-video from an S video VCR ?? I want to use some pre-miniDV S-video footage in an upcoming small Final Cut production. ?? Is there a conversion from S-video to firewire400 ?? Best regards, Ken

  • AS2- How to display Idoc number in ACK MDN

    Hi , I have an requirement where I have to send the Idoc number in MDN which is sent as an acknowledgement after AS2 system has received an INVOIC Idoc . Scenario is like below: Part I: R/3(Invoic idoc)>PI>(Idoc xml)AS2  R/3 system will send an Idoc

  • Pix 506e firewall configring for mail( Exhange), Web, FTP server

    Hi I am Hemant, We have pix 506e firewall, D-link ADSL dsl-502t and my IBM xseries 236 server. I have fix static live ip 59.181.103.220 which i have got ISP (MTNL), and the same ip is given in fqdn in www.net4india.com (a company from where we have r