Print Freight terms on BOL

Hi,
can anyone please help me with this?
How can we print freight terms : Prepaid or Collect or Bill to party on Bill of lading? I am print BOL in VT70.
Thanks,
Ratna

I don't have any R/3 config steps. But i bet an ABAPER with the SAP SCRIPT/FORM used for BOL output type can definitely do the magic.
We have our Buddy who did the same & it looks good in BOL.
If somebody has Standard way, i would be happy to know the same.
Thanks

Similar Messages

  • Print Freight Terms on quotation form

    Hi ,
    Customer requirement -Print Freight Terms on quotation form. Freight terms are  Pre paid , Pre paid  and Add, Collect, 3rd party.
    How I can do this functionality, please help me in this business scenario.
    Thanks,
    vmr

    Dear Malla readdy,
    Incoterms will be maintained in customer master sales area data section inbilling view.
    Here you maintain the Incoterms.If incoterms are not visible in your customer master, it might be in supress mode so make it optional in (OBD2).
    Inco terms will be stored in KNVV - INC01
    So co-ordinate with the technical consultant in order to fetch the data to out put form
    Please revert if you have any further clarifications
    Thanks&Regards
    Raghu.k

  • How to print the Terms and Condition page ine the sap-script

    Hi experts,
                             i got the requirement that how to print the Terms and condition page in the script,i have the three pages, having the same main window, in the last of the main window(all three pages)  i have called the hard coded text(i.e so10 text), but when i am displaying the output  data get printed in the first page but i am getting the second page heading on the top of  the terms and condiions page. In all the three pages i  have the same main window, if i  make change in any window i will affect all the other main  windows.  so please suggest me how i need to go.HOW TO GET GRID OF THE TEXT ON THE TOP OF THE SECOND PAGE OF THE TERMS AND CONDITONS.
    like this i have called in the MAIN WINDOW
    /E : LAST ( IN ALL THREE PAGES)
           INCLUDE ZSD_INVOICE_TERMS TEXT OBJECT TEXT LANGUAGE EN.
    IN THE TCODE SO10
    NEW PAGE TERMS.
    1) TERM MS AND CONDITONS  TEXT.................................................
    FIRST->NEXT, NEXT->NEXT,,   TERMS--->TERMS.

    Hi,
    1. Create a new page by Name : LAST
    2. Identify the text element which will be the last element in the form in the debug mode.
    Mostly Ex: SUM, TOTAL, LAST etc.,
    3. the page linking should be
    First --> Next
    Next --> Next
    4. In the Text element identified in the step 3.
    Write the following code
    /: NEW PAGE  LAST
    /: INCLUDE the standard text created for the terms and conditions in SO10
    Check the syntax for the command but the logic will be the same.
    It should resolve your problem.

  • Bill of Lading not generated after chaning Freight Terms.

    Hi,
    When we are changing in Order Lines, Freight Terms, the Bill of Lading does not get generated. In the database the pick_slip_number, delivery_id etc also does not populated.
    I would appreciate if any thoughts on any process we are missing or other suggestion.
    Thanks for your help.
    Regards,
    Sanjay

    Hi Friend,
    U go to OBB8 as u said and maintain the "Baseline date calculation"
    Fixed Days : 7 days
    Additional Months : Leave Blank
    and default for Baseline date will be the Document date (Invoice Date)
    I hope this will solve ur problem
    Regards,
    Jigar

  • Delivery,due date,mode of despatch,freight terms,insurance particulars

    Delivery,due date,mode of despatch,freight terms,insurance particulars are given in vendor master..Based on the respective terms provided in pur inforecord by material and vendor wise, automatically flow in po ...Is there any method to configure,to flow that information in Info record to PO automatically??? 
    plz help me
    Thanks and regards
    Ramesh Reddy

    Hi Jurgen
    I am exatly looking for the same. Is there any way we can proivide transit dates based on transit mode in ECC and transit mode in PO so that the Planned delivery date in PO is calculated exactly based on mode of transport ? I am looking for something similar to Route determination in SD.
    Madhavan
    Edited by: Madhavan SR on Jan 4, 2012 4:41 PM

  • Printing Procurement Terms and Conditions in custom BIP report

    We are developing a custom BIP report for printing Purchase Agreements. We created new Data model and a new report template that matches the customer's requirements. However, we are not able to print the Terms and conditions in this custom report.
    The custom report is placed in the Shared Folders/Custom/Procurement/Purchasing folder and we included the following code at the beginning of the custom report template -
    <?import: xdoxsl:///Procurement/Purchasing/prc_po_terms_and_conditions_sub.xsb?loc=${_XDOLOCALE}?>
    And at the end, where we want to print the Terms and Conditions, the following code -
    <xsl:apply-templates select=".//TermsAndConditions"/>
    But the Terms and conditions are not printed. Can someone please help out and point to me where the mistake is?
    Thanks
    Lakshmi

    I am not an expert on BIP and will ask a colleague to comment. Took a look at the documentation and noticed some small differences, not sure if these have any impact, but you could try them while waiting to triage the issue:
    The documentation does not have space in the import statement i.e. "import:xdoxsl" while your example has a space "import: xdoxsl"
    To render the content the documentation states to use "<?call-template:template_name?>"
    Jani Rautiainen
    Fusion Applications Developer Relations
    https://blogs.oracle.com/fadevrel/

  • How default FREIGHT TERMS are getting enabled in RMS 10.1.23

    Hi All,
    During installation of RMS10.1.23 , statcin.sql which inserts the default FERIGHT TERMS records with enabled status as 'N'. Then how its enabled status get changed to 'Y'. Because you can't use these default freight terms untill it status got changed to 'Y' . Could anyone please tell me is it happening by any program or the user manually go to the screen and enabling it.
    Thanks
    Senthilkumar

    Please refer metalink note ID 466464.1
    Regards,
    Anuj

  • Smartform purchase order print duplex terms

    I have made change to print TERMS page last and it works. 
    Also the folder NOTES after MAIN still works as does page number, ie the TERMS do not add to total number of pages.
    However, page TERMS does not duplex and the printer can print in duplex. The device is HPLJ4350 and set for HP4300; but I did see that it did not have specific print mode print controls on that device type.
    I used SO10 for text SAPSCRIPT-PRINTMODETEST and it does all the print modes fine.
    SMARTFORM /SMB40/MMPO_L was used as base form that I modified.
    I added command node at end of MAIN where I checked Go to new page and Include Printer Control           SPMDU (this is the print control that was not specific to the device type).
    Any correct solutions will bring points to you!

    I think you want to do the following...
    PAGE   >  NEXT PAGE  >  OUTPUT OPTION (print mode)
    FIRST   >  TERMS          >       D(uplex)
    TERMS >  NEXT             >       blank
    NEXT    >  TERMS          >       D(uplex)
    The variation in my scenario previously described I wants the terms only on the back of last page.  I have since read that it is now believed that it is better to have preprinted terms and NOT have logic to print terms in SMARTFORM at all.  But I don't buy that as I feel the resource usage is not really a big deal and printing terms does NOT really impact adversely.  However, if you want solution that is universal regardless of print hardware capabilities, preprinting is the way to go.

  • Unknown characters being displayed while Printing Bill of Lading(BOL)

    Hello all,
       From SAP 4.7D, while printing the output using SAP-script for Bill of Lading, some unknown characters(Eg: 10H0O0S0G), a combination of letters and numbers being printed in the begining and also in the bottom of the output document.
    This is happening only in PRD enviroment and it works fine in DEV and QA instances.
    The document gets printed in EPSON printer. Since this is not an issue in DEV and QA, I would assume that it has something to do with the printer.
    If anybody experienced similar issues in the past OR know the reason for this particular issue, please address this one.
    I would really appreciate the feedbacks and reward the points for the right solutions.
    Many Thanks,
    -G

    Hi,
    Is this problem is happenning only with Bill of lading? If that is the case, it should not be a problem with printer. If there is a problem with the printer driver it should affect the complete form itself.
    If you want to test the printer driver, compare the device type maintained for the EPSON printer in both QA and Production.
    Hope this helps you.

  • Print Terms and conditions on Back side in Smart Forms

    Hi All,
    How can we print Terms and conditions on back side of last page. we are using SAP Smart Forms to print Packing Slips now we need to print the terms and conditions on back side of last page. who can we do this ... ?
    I have created 2 pages first page and Last page i have selected last page as  next page for First page and  vice vis and selected duplex printing for first page print option.
    Now the problem is the terms and conditions are printed on all the pages but not on the last page. for example if i have 5 pages then all the 4  pages are printed on front and back but the last page(5) is printed only on the front side but not on the back and if we print only 1 page then only front page is printed and no back side is printed.
    please let me know what else need to be done in order to print the terms and conditions on the back side of last page.
    Thanks,
    Praveen Chindam.

    Hi,
    There is quite a simple solution. We have exactly the same requirements for our invoices.
    Create 3 pages in the Smartforms, e.g. FRONT, BACK and LAST.
    FRONT has print mode "D" (duplex) and next page "BACK"
    BACK has print mode " " (unchanged) and next page "FRONT"
    LAST has print mode " " (unchanged) and next page " " (blank)
    BACK and LAST are identical apart from that, and do not have a MAIN window - they just contain the T&C in a secondary window.
    At the very end of the MAIN window on the page FRONT, insert the command NEW PAGE <LAST>.
    This will give you a print out that is
    FRONT, BACK, FRONT, BACK,....FRONT, BACK, FRONT, LAST.

  • How to print terms and cond of a PO in a fresh page in smartforms??

    hi All,
    My requirement is as follows...
    i need to print terms and conditions of a purchase order after the main window and the amount has been printed. the terms and conditions should be in a fresh page. i.e if the line items items and the amounts window occupies two pages. then terms and conditions should be printed on a fresh page i.e 3. the terms and conditins are many so it will occupy a full page. how do i call this page after all line items are printed??
    Any pointers reg this would be highly appreciated.
    Regards,
    Sreekanth.

    Hi,
    do the following steps:
    1.Create a New Page for Terms & Conditions (lets say Page3).
    2.First u describe the no of lines in your Internal table into a variable.
    3.In the LOOP create a counter & increase the counter for every line. also create another variable to set the flag when the Counter reaches the no of lines in internal table.
    4.Now, write a condition in Program lines if Counter =  No of Lines in internal table, set the flag variable to 'X'.
    5.Now create a condition on Page, IF FLAG = 'X', GO TO PAGE 3.
    Eg:
    DATA : gv_counter TYPE i,
               gv_lines TYPE i,
               gv_flag.
    describe table itab lines gv_lines.
    LOOP AT itab.
       clear : gv_flag.
       gv_counter = gv_counter + 1.
       IF gv_counter = gv_lines.
          gv_flag = 'X'.
          clear : gv_counter.
       ENDIF.
    Now U create a COMMAND in LOOP, Go to New Page (Give Page3) and conditions tab (write gv_flag = 'X').
    endloop.
    Hope it solves!!
    Rgds,
    Pavan

  • Conditional IF Print...4/15/11**please help!!!**

    Hello friends-
    I'm trying to create an IF statement that reads the branch/plant and based on that number, for example branch/plant 101, will print 4 copies and all the rest will only print one invoice
    This is what I have....
    <?for-each@section:xdoxslt:foreach_number($_XDOCTX,1,xdoxslt:ifelse(CostCenter_ID12='101', 4, 1),1)?><?for-each:/R554201JB1/Bill_of_Lading_S1_Group/On_Order_Number_S3?>
    ..I also tried this code, with no success as well
    <?xdoxslt:if CostCenter_ID12 = 101 then ' for-each@section:xdoxslt:foreach_number($_XDOCTX,1,3,1)’ and ‘for-each:/R554201JB1/Bill_of_Lading_S1_Group/On_Order_Number_S3'
    else'for-each@section:xdoxslt:foreach_number($_XDOCTX,1,1,1)’ and ‘for-each:/R554201JB1/Bill_of_Lading_S1_Group/On_Order_Number_S3 '
    end if?>
    your help is much appreciated,
    d
    Edited by: 852460 on Apr 15, 2011 1:21 PM

    ...here is the whole xml. Just in case...
    <R554201JB1>
    - <Properties>
    <Version>SFC002</Version>
    <Title>BILL OF LADING - BACKUP 1</Title>
    <Machine>JDEDVAPP9</Machine>
    <Host>JDEDVAPP9</Host>
    <Environment>JPY900</Environment>
    <User>D</User>
    <Role>*ALL</Role>
    <Company>XXXXX</Company>
    <OneWorldRelease>E900</OneWorldRelease>
    <Date>4/11/2011</Date>
    <Time>11:51:36</Time>
    </Properties>
    - <Bill_of_Lading_Detail_S6_Column_Headings Language="">
    <PageHeaderNumber>1</PageHeaderNumber>
    <Pallet_ID30>Pallet Number</Pallet_ID30>
    <Order__Number_ID2>Order Number</Order__Number_ID2>
    <Cases_Shipped_ID26>Cases Shipped</Cases_Shipped_ID26>
    <Cases_Shipped_ID18>Cases Shipped</Cases_Shipped_ID18>
    <Item_Number_ID6>Item Number</Item_Number_ID6>
    <Or__Ty_ID4>Or Ty</Or__Ty_ID4>
    <Item_Description_ID10>Item Description</Item_Description_ID10>
    <Lot__Serial_Number_ID12>Lot Serial Number</Lot__Serial_Number_ID12>
    <Quantity__Shipped_ID8>Quantity Shipped</Quantity__Shipped_ID8>
    <UOM__ID14>UOM</UOM__ID14>
    <Customer_Info_ID20>Customer Info</Customer_Info_ID20>
    </Bill_of_Lading_Detail_S6_Column_Headings>
    - <PageHeaders>
    - <Page_Header_S2>
    <PageHeaderNumber>1</PageHeaderNumber>
    <R554201JB1_ID1>R554201JB1</R554201JB1_ID1>
    <Variable_000002_ID2>Company</Variable_000002_ID2>
    <Date___ID8>Date -</Date___ID8>
    <Variable_000004_ID4>2011-04-11</Variable_000004_ID4>
    <Variable_000005_ID5>11:51:36</Variable_000005_ID5>
    <Variable_000003_ID3>BILL OF LADING - BACKUP 1</Variable_000003_ID3>
    <Time___ID9>Time -</Time___ID9>
    <Variable_000006_ID6>1</Variable_000006_ID6>
    <Page___ID7>Page -</Page___ID7>
    </Page_Header_S2>
    </PageHeaders>
    - <Bill_of_Lading_S1_Group>
    - <On_Order_Number_S3>
    <PageHeaderNumber>1</PageHeaderNumber>
    <Customer_No._ID1>Customer No.</Customer_No._ID1>
    <AddressNumber_ID2>3083</AddressNumber_ID2>
    <NameAlpha_ID16></NameAlpha_ID16>
    <Ship_To___ID15>Ship To :</Ship_To___ID15>
    <AddressLine1_ID18>ACCOUNTS PAYABLE DEPT.</AddressLine1_ID18>
    <AddressNumberShipTo_ID4></AddressNumberShipTo_ID4>
    <AddressNumberShipTo_ID3>Ship To</AddressNumberShipTo_ID3>
    <AddressLine2_ID20>bbbbbbb</AddressLine2_ID20>
    <OrderType_ID8>SO</OrderType_ID8>
    <DocumentOrderInvoiceE_ID5>Order Number</DocumentOrderInvoiceE_ID5>
    <DocumentOrderInvoiceE_ID6>505</DocumentOrderInvoiceE_ID6>
    <AddressLine3_ID75>PO</AddressLine3_ID75>
    <AddressLine4_ID77></AddressLine4_ID77>
    <Related_P.O._ID9></Related_P.O._ID9>
    <Email__ID70>Email:</Email__ID70>
    <Branch_Plant_ID11>Branch/Plant</Branch_Plant_ID11>
    <CostCenter_ID12>103</CostCenter_ID12>
    <Fax__ID57>Fax:</Fax__ID57>
    <Shipment_Number_ID13>Shipment Number</Shipment_Number_ID13>
    <CommodityCode_ID14></CommodityCode_ID14>
    <Carrier_ID28></Carrier_ID28>
    <Carrier___ID27>Carrier :</Carrier___ID27>
    <Branch_Mailing_Name_ID114></Branch_Mailing_Name_ID114>
    <Branch___ID100>Branch :</Branch___ID100>
    <Description___Carrier_Number_ID29>CUSTOMER PICKUP</Description___Carrier_Number_ID29>
    <Branch_Address_Line_1_ID103> </Branch_Address_Line_1_ID103>
    <Branch_Address_Line_2_ID104> </Branch_Address_Line_2_ID104>
    <Branch_Address_Line_3_ID105> </Branch_Address_Line_3_ID105>
    <Branch_Phone_Number_ID112></Branch_Phone_Number_ID112>
    <Phone__ID110>Phone:</Phone__ID110>
    <Branch_Prefix_ID111></Branch_Prefix_ID111>
    <Phone__ID99>Phone:</Phone__ID99>
    <Shipper_No._Value_ID80>FPU</Shipper_No._Value_ID80>
    <Shipper_No._ID78>Shipper No.</Shipper_No._ID78>
    <Freight_Terms__ID54>Freight Terms:</Freight_Terms__ID54>
    <Description___Freight_Handling_ID56>FOB ORIGIN - PICK UP</Description___Freight_Handling_ID56>
    <NOTES__ID39>NOTES:</NOTES__ID39>
    <Description1_ID47>PHONE: MUST MAKE APPOINTMENT</Description1_ID47>
    <Summary_Section_ID36>Summary Section</Summary_Section_ID36>
    <Quantity_Shipped_ID34>Quantity Shipped</Quantity_Shipped_ID34>
    <UOM_ID35>UOM</UOM_ID35>
    <Item_Description_ID33>Item Description</Item_Description_ID33>
    <UOM_ID31>UOM</UOM_ID31>
    <Item_Number_ID32>Item Number</Item_Number_ID32>
    <Customer_Item_ID48>Customer Item</Customer_Item_ID48>
    <Cases_Shipped_ID30>Cases Shipped</Cases_Shipped_ID30>
    - <On_2nd_Item_Number_S5>
    <Bill_of_Lading_S1 />
    <Bill_of_Lading_S1 />
    <Item_Description_ID18> </Item_Description_ID18>
    <CasesShipped_ID14>51</CasesShipped_ID14>
    <UnitOfMeasurePrimary_ID5>LB</UnitOfMeasurePrimary_ID5>
    <UnitOfMeasureSecondary_ID7>CA</UnitOfMeasureSecondary_ID7>
    <Identifier2ndItem_ID9></Identifier2ndItem_ID9>
    <QuanShipped_ID13>1020</QuanShipped_ID13>
    </On_2nd_Item_Number_S5>
    - <On_2nd_Item_Number_S5>
    <Bill_of_Lading_S1 />
    <Item_Description_ID18> </Item_Description_ID18>
    <ItemNoCustomerVendor_ID16>02630</ItemNoCustomerVendor_ID16>
    <CasesShipped_ID14>18</CasesShipped_ID14>
    <UnitOfMeasurePrimary_ID5>LB</UnitOfMeasurePrimary_ID5>
    <UnitOfMeasureSecondary_ID7>CA</UnitOfMeasureSecondary_ID7>
    <Identifier2ndItem_ID9>10927</Identifier2ndItem_ID9>
    <QuanShipped_ID13>381</QuanShipped_ID13>
    - <Space_S7>
    <PageHeaderNumber>1</PageHeaderNumber>
    <Detail_Section_ID2>Detail Section</Detail_Section_ID2>
    - <Bill_of_Lading_Detail_S6_Group>
    - <On_Order_Number_S8>
    - <Bill_of_Lading_Detail_S6>
    <PageHeaderNumber>1</PageHeaderNumber>
    <UnitsSecondaryQtyOr_ID25>49</UnitsSecondaryQtyOr_ID25>
    <Identifier2ndItem_ID5></Identifier2ndItem_ID5>
    <PalletNo_ID29>01</PalletNo_ID29>
    <DescriptionLine1_ID9> </DescriptionLine1_ID9>
    <Lot_ID11></Lot_ID11>
    <UnitsQuantityShipped_ID7></UnitsQuantityShipped_ID7>
    <Unit_of_Measure___Primary_ID13>LB</Unit_of_Measure___Primary_ID13>
    </Bill_of_Lading_Detail_S6>
    - <Bill_of_Lading_Detail_S6>
    <PageHeaderNumber>1</PageHeaderNumber>
    <UnitsSecondaryQtyOr_ID25>2</UnitsSecondaryQtyOr_ID25>
    <Identifier2ndItem_ID5></Identifier2ndItem_ID5>
    <PalletNo_ID29>01</PalletNo_ID29>
    <DescriptionLine1_ID9> </DescriptionLine1_ID9>
    <Lot_ID11></Lot_ID11>
    <UnitsQuantityShipped_ID7></UnitsQuantityShipped_ID7>
    <Unit_of_Measure___Primary_ID13>LB</Unit_of_Measure___Primary_ID13>
    </Bill_of_Lading_Detail_S6>
    - <Bill_of_Lading_Detail_S6>
    <PageHeaderNumber>1</PageHeaderNumber>
    <UnitsSecondaryQtyOr_ID25>18</UnitsSecondaryQtyOr_ID25>
    <Identifier2ndItem_ID5></Identifier2ndItem_ID5>
    <PalletNo_ID29>01</PalletNo_ID29>
    <DescriptionLine1_ID9> </DescriptionLine1_ID9>
    <Lot_ID11></Lot_ID11>
    <UnitsQuantityShipped_ID7>381.46</UnitsQuantityShipped_ID7>
    <Unit_of_Measure___Primary_ID13>LB</Unit_of_Measure___Primary_ID13>
    </Bill_of_Lading_Detail_S6>
    <Footing_Section_ID26>Footing Section</Footing_Section_ID26>
    <TARE___ID4>TARE :</TARE___ID4>
    <Tare_ID25>50</Tare_ID25>
    <TOTAL_WEIGHT___ID5>TOTAL WEIGHT :</TOTAL_WEIGHT___ID5>
    <TotWeight_ID24>1451</TotWeight_ID24>
    <TotalPackages_ID23>69</TotalPackages_ID23>
    <TOTAL_PACKAGES___ID6>TOTAL PACKAGES :</TOTAL_PACKAGES___ID6>
    <TOTAL_PALLETS___ID7>TOTAL PALLETS :</TOTAL_PALLETS___ID7>
    <NumberOfContainers_ID18>1</NumberOfContainers_ID18>
    <ORDER_DATE___ID8>ORDER DATE :</ORDER_DATE___ID8>
    <DateTransactionJulian_ID14>2011-01-28</DateTransactionJulian_ID14>
    <ScheduledPickDate_ID28>2011-02-10</ScheduledPickDate_ID28>
    <DELIVER_ON___ID27>DELIVER ON :</DELIVER_ON___ID27>
    <ActualShipDate_ID12>2011-02-10</ActualShipDate_ID12>
    <SHIP_DATE___ID9>SHIP DATE :</SHIP_DATE___ID9>
    <CUSTOMER_PO___ID10>CUSTOMER PO :</CUSTOMER_PO___ID10>
    <Reference1_ID16>98753</Reference1_ID16>
    </On_Order_Number_S8>
    </Bill_of_Lading_Detail_S6_Group>
    </Space_S7>
    </On_2nd_Item_Number_S5>
    </On_Order_Number_S3>
    </Bill_of_Lading_S1_Group>
    </R554201JB1>

  • On the printing slowness of Postscript produced by the JVM from calls to Graphics.drawString() (Linux/Unix)

    Happy new year,
    before the holidays my attention was drawn to an issue that supposedly the Postscript produced by the JVM is too big and hence too slow.  Here are my findings.
    The issue
    Text printing via CUPS to native Postscript printers can be slow. Printing a terms and conditions page (17000 characters/page) takes three and a half minutes to print on a Dell 2330 dn laser printer (96 MB,Max speed 33 ppm). The file is about 8 MB in size. To contrast that, rendering the text to a buffered image with 300 DPI and printing the result produces 7 MB of output which prints in 30 seconds on the same printer. More measures for different printers and documents can be found at the end of this post. The issues is registered as  "JDK-4627340 : RFE: A way to improve text printing performance for postscript devices" (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4627340) and the proposed workaround is to use printer fonts.
    Side remark regarding the workaround
    There is a regression that prevents the workaround from working (bug 9008662 at Sun (not yet visible),  bug 8023990 at OpenJDK (https://bugs.openjdk.java.net/browse/JDK-8023990). Without knowing what other bad side effects this might have, the issue can be resolved by setting the property "sun.awt.fontconfig". On my system I set it to the location of a "fontconfig.properties" of a JVM that does not have the bug (e.g. /home/alex/openjdk_7_b147_jun_11/openjdk/build/linux-i586/bin/java -Dsun.awt.fontconfig="/etc/java-6-openjdk/fontconfig.properties" Print2DtoStream). I also successfully tested the workaround on an Oracle JVM 1.7.0_03-b04.
    Back to the main topic
    How the JVM draws text if it can't use a standard printer font
    Text is drawn with postscript path drawning commands such as "moveto", "lineto" or "curveto". As an example consider the word "ll" which looks something like this:
    %N->short for "newpath"
    N
    %paint first "l"
    %M->short for "moveto"
    0.76875 11.06 M
    %L->short for "lineto"
    0.76875 2.468 L
    1.823 2.468 L
    1.823 11.06 L
    0.76875 11.06 L
    %p->short for "closepath"
    P
    %paint second "l"
    3.649 11.06 M
    3.649 2.468 L
    4.703 2.468 L
    4.703 11.06 L
    3.649 11.06 L
    P
    The same text could be printed with a printer font using the command "(ll) show" which is much more compact but is available in Java only for the Postscript standard fonts and it isn't working at all right now as explained above.
    Is it the file size?
    My first thought was that the file size was the source of of slowness and so I wrote a small processor that would detect glyphs, normalize*1 them and place them in a dictionary. Recurring references to the same glyph were replaced by a dictionary reference  (This is incidentally the fix proposed by the original author of RFE 4627340). This shrunk the file to about 11% of the original size but the processing time surprisingly doubled.
    *1: With "normalizing" I mean applying a translation transform so that the smallest coordinates in the contours of a glyph are exactly 0. In addition I experimented with performing a normalizing scale transform so that all coordinates lie between 0 and 1 so that identical glyphs are detected at arbitrary positions and at different font sizes.
    That led to the question to why there is such a big difference in performance between a Type 1 font dictionary and a self constructed dictionary since both contain basically the same drawing instructions. The difference is apparently that fonts are cached and user drawings are not unless explicitly told.
    The Postscript "ucache" instruction
    Postscript level 2 introduces the "ucache" instruction which seems to be defined for precisely this kind of problem. From the documentation:
    "Some PostScript programs define paths that are repeated many times. To optimize the interpretation of such paths, the PostScript language provides a facility called the user path cache. This cache, analogous to the font cache, retains the results from previously interpreted user path definitions. When the PostScript interpreter encounters a user path that is already in the cache, it substitutes the cached results instead of reinterpreting the path definition. "
    After adding "ucache" instructions to my filter the speed improved by factor 10.
    To illustrate the said the "ll" text from above looked as follows after the transformation:
    %definition of the glyph "l" named "p0"
    /p0
    ucache
    0.000 0.000 1.054 8.592 setbbox
    0.000 8.592 moveto
    0.000 0.000 lineto
    1.054 0.000 lineto
    1.054 8.592 lineto
    0.000 8.592 lineto
    closepath
    } cvlit def
    G
    N
    0.769 2.468 translate
    %draw "l" at 0.769 2.468
    p0 ufill
    -0.769 -2.468 translate
    3.649 2.468 translate
    %draw "l" at 3.649 2.468
    p0 ufill
    -3.649 -2.468 translate
    For ucached shapes there is a special compact representation so that the same can be written as follows:
    /p0
    0.000 0.000 1.054 8.592
    0.000 8.592
    0.000 0.000
    1.054 0.000
    1.054 8.592
    0.000 8.592
    } cvlit def
    G
    N
    0.769 2.468 translate
    p0 ufill
    -0.769 -2.468 translate
    3.649 2.468 translate
    p0 ufill
    -3.649 -2.468 translate
    Interestingly the speed improvement remained the same on a Chinese report that had hardly any character reuse. Upon this observation I changed the filter to not use a dictionary but so simply instruct the interpreter to cache each glyph definition and the performance remained nearly the same.
    The initial "ll" text from above looks as follows after this transformation:
    N
    %paint first "l" cached
    0.76875 2.468 1.823 11.06
    0.76875 11.06
    0.76875 2.468
    1.823 2.468
    1.823 11.06
    0.76875 11.06
    } ufill
    %paint second  "l" cached
    3.649 2.468 4.703 11.06
    3.649 11.06
    3.649 2.468
    4.703 2.468
    4.703 11.06
    3.649 11.06
    } ufill
    Note that I didn't normalize the shapes.
    Why does this improve the performance so vastly if the shape is drawn only once? For a while I thought perhaps that the interpreter would consider two paths which differ only by a translation as being the same but rereading the documentation and looking at the Chinese example in which nearly all characters are unique, disproves this. The relevant part of the documentation reads:
    "Caching is based on the value of a user path object. That is, two user paths are considered the same for caching purposes if all of their corresponding elements are equal, even if the objects themselves are not.
    A user path placed in the cache need not be explicitly retained in virtual memory. An equivalent user path appearing literally later in the program can take advantage of the cached information. Of course, if it is known that a given user path will be used many times, defining it explicitly in VM avoids creating it multiple times.
    User path caching, like font caching, is effective across translations of the user coordinate system, but not across other transformations, such as scaling or rotation. In other words, multiple instances of a given user path painted at different places on the page will take advantage of the user path cache when the current transformation matrix has been altered only by translate. If the CTM has been altered by scale or rotate , the instances will be treated as if they were described by different user paths."
    An explanation that would fit the findings
    The rasterizer renders the page multiple time (perhaps in order to save memory and produce horizontal strips). On the first rendering the cache is filled and reused on the subsequent renderings thereby improving performance even if all cached items are used only once.
    Based upon this theory I hoped that the strip height would grow if I added more memory to the printer but this was not the case on the two printers for which I had memory to test with. Even substantial changes to the available memory (e.g. going from 32 MB to 96 MB) had no impact whatsoever on the performance.
    Summary
    The issue is not related to the file size as the original requester suspected but very likely due to the uncached rendering. Caching of glyphs can be achieved by using the "ucache" instruction or perhaps by placing the glyphs in font dictionaries and using the "show" operator.
    Although reported in 2003, time is apparently not healing this quick enough since printers in the 10,000$ class like the Sharp MX2310U still take a full minute to print 10 pages and a desktop printer may be blocked for over an hour for the same document.
    We will now try to use the CUPS filter and leave the printers configured as Postscript printers. If there is interest I can post the single file source of a CUPS filter that performs the inline conversion described. Apart from libl it requires no additional libraries and written using flex it is reasonably lightweight and fast.
    I would appreciate any opinion on whether or not the proposed workaround for bug 8023990 (https://bugs.openjdk.java.net/browse/JDK-8023990), namely having the system property "sun.awt.fontconfig" pointing to a working fontconfig.properties of a previously installed and working 1.6 version file, is safe.
    Measures (Appendix)
    "Terms and Conditions" report
    Testing a single page "Terms and Conditions" report in "Arial" 8pt (I am aware that "Helvetica" is width compatible and nearly looks the same but in this particular case the line height was also relevant and as explained above, printer fonts are currently not working). The page contains 17000 characters of which some parts are bold and some italic. This is a real world example and to make things worse the requirement is to print the text on the backside of every page on a certain class of reports. I am aware that this is a bit extreme but I also felt that I couldn't dismiss it as being unreasonable.
    File "Arial.ps" (7.5 MB Unmodified output of the JVM)
    Printer
    Printing time
    Dell 2330dn 32MB/96MB
    3:50 minutes
    Lexmark X658de (55 ppm, aprox. 5,000$)
      1:45 minutes
    HP LaserJet 4240n 64 MB
    1:12 minutes
    Kyocera Taskalfa 300ci (30 PPM, aprox. 8,000$)
    1 minute
    HP Color LaserJet 4650 dn 128/384MB
    51 seconds
    Sharp MX 2310U 512MB (55ppm,  aprox. 10,000$)
    31 seconds
    Arial_inline.ps (8 MB contains "ucache" without normalization and without dictionary)
    Printer
    Printing time
    32MB/96MB
    30seconds/30seconds (Improvement by factor 7.7)
    Lexmark X658de (55 ppm, aprox. 5,000$)
      15 seconds (Improvement by factor 7)
    HP LaserJet 4240n 64 MB
    47 seconds (Improvement by factor 1.5)
    Kyocera Taskalfa 300ci (30 PPM, aprox. 8,000$)
    20 seconds (Improvement by factor 5)
    HP Color LaserJet 4650 dn 128/384MB
    46 seconds (Improvement by factor 1.1)
    Sharp MX 2310U 512MB (55ppm,  aprox. 10,000$)
    14 seconds (Improvement by factor 2)
    Asian characters test
    Testing 10 pages of Asian characters in the font "WenQuanYi Zen Hei" 12pt where each page contains 49 lines by 40 unique characters. The document contains the 30,000 characters between unicode 0x4e00 and 0x9fff. This is a nonsense stress test but it illustrates  that the "ucache" speedup works even though no character is repeated in the report.
    Asian.ps  (52 MB Unmodified output of the JVM)
    Printer
    Printing time
    Dell 2330dn 32MB/96MB
    64 minutes
    Lexmark X658de (55 ppm, aprox. 5,000$)
    Not measured
    HP LaserJet 4240n 64 MB
    11 minutes
    Kyocera Taskalfa 300ci (30 PPM, aprox. 8,000$)
    Not measured
    HP Color LaserJet 4650 dn 128/384MB
    9:13 minutes
    Sharp MX 2310U 512MB (55ppm,  aprox. 10,000$)
    4:08 minutes
    Asian_inline.ps (54 MB contains "ucache" without normalization and without dictionary)
    Printer
    Printing time
    32MB/96MB
    5:30 minutes (Improvement by factor 11.6)
    Lexmark X658de (55 ppm, aprox. 5,000$)
    Not measured
    HP LaserJet 4240n 64 MB
    3:48 minutes (Improvement by factor 2.9)
    Kyocera Taskalfa 300ci (30 PPM, aprox. 8,000$)
    Not measured
    HP Color LaserJet 4650 dn 128/384MB
    2:46 minutes (Improvement by factor 3.4)
    Sharp MX 2310U 512MB (55ppm,  aprox. 10,000$)
    48 seconds (Improvement by factor 5)

    Hi Sven,
    Will putting the boilerplate in the trailer section allow me to still have it appearing on the back page of the main report? This is where it needs to be as far as the printed report goes - it is duplexed.
    Regards
    Lanny

  • How to Print T&C on backside of the last page in smartform.

    Hi All,
             I have requirement from one of the my client to print the terms & condition page on the back side of last page in invoice form.
    I have created three pages as below.
    First page: To Print header data,Print mode:blank,Next page : NEXT.
    Second page : Contains the continuation of the data,if there are enough lines,Print Mode: D,Next page : NEXT.
    Last page:To Print T&C,Print mode : blank,Next page :blank.
                This is working properly when form has 2 pages.Here my question is,
    How to print the T&C on backside of first page,if form has only one page.
    Thanks in Advance.

    Hi Vineesh,
    I have 3 pages in my form.
    First page: To Print header data, Print mode:blank, Next page : NEXT.
                         First page has the comment node, go to next page as Third page.
    Second page : Contains the continuation of the data, if there are enough lines, Print Mode: D,
                          Next page : NEXT.
    Third Page: T&C page, Print mode : blank,Next page :blank
    The 3rd page should print back side of the page.
    If form has only one page,then first page should be in D mode.Hence the T&C page will print back side of first page.
    If form has multiple pages. then the last page ( where the main window gets end ) should be D.Hence
    the T&C page will print back side of last page.
    How to achieve this both the scenarios?
    Thanks & Regards,
    Priya Chandran

  • Print Second page in SAP script

    Hi ,
    I want to print second page in my sapscript.first page has Header,MAIN,footer windows. Second page has only one window where i need to print some terms and conditions those are hard coded in script.
    Could you please let me know how i can print second page after first page?
    Thanks
    Mohit

    Create a new page as second page....
    Assign the second page as the next page to the first page... select print only when main window finishes...
    It will automatically print the second page...

Maybe you are looking for

  • Displays on mac but not PC

    I'm making my on geometry with a TriangeleStripArray. It displays on a mac (osX.3.9) but not on any of the PC's I have tried it on. I get the canvas but not 3dObjects. when I try to use the left mousedown to rotate (the image that isn't there on a PC

  • Nokia Asha 306 problem

    Im using a Nokia asha 306 and i can't use browser,mail and other pre installed services and when i click on the icon it just flashes back so i can't fully access my phone anymore,please help

  • How to load and unload Multiple External SWF

    hello there, i need help to figuring out how to load and also unload(removing) multiple external SWF. so here is what i;m trying to do, i want to load multiple external SWF and play it on my main SWF now i hove no problem with just loading multiple S

  • Custom Radial Buttons

    Finally got this radial button thing to work. I thought I would share. //Written by Brett Gonterman 2012 app.scriptPreferences.version = 6.0; var pngButton="\u0089PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x12\x00\x00\x00(\b\x06\x00\x00\x01\u0084(\u

  • Setup & Load Guide CRM 4.0

    Hello, i can't find a Setup & Load Guide for CRM 4.0. For CRM 3.0 such a document exists. IS there one for 4.0? Best regards, TomSd