Pattern issue with PDF forms developed from Designer | Community
Skip to main content
manu-gupta
November 2, 2021
Solved

Pattern issue with PDF forms developed from Designer

  • November 2, 2021
  • 4 replies
  • 5308 views

We have XDP form (attached sample) which needs a field to have 10 leading and 8 trailing digits. we have added this pattern to all options (Data/Display/Edit/Validation) num{zzzzzzzzz9.zzzzzzz9} and also added leading and trailing digit number to field tab. 

issue start appearing when we have to put trailing digits more than 5.

we put 135,235,234.2509, it shows 135,235,234.25090

we put 135,235,234.250885 it shows 135,235,234.25088501

we put 1,132,235,234.25024 it shows 1,132,235,234.25024009

 

It put trailing digits randomly and we cannot have this behavior. 

Is there a way to fix it or approach differently?

 

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by radzmar

Your patterns aren't correct for the decimal places.

Use num{z,zzz,zzz,zz9.88888888} instead. The 8 stands for an optional decimal place which is not 0.

1,132,235,234.25024 will be formatted as 1,132,235,234.25024 an 1,132,235,234.25000000 as 1,132,235,234.25.

 

To display a fixed number of decimal places use 9 instead of 8. 

num{z,zzz,zzz,zz9.99999999} will show always 8 decimal places.

num{z,zzz,zzz,zz9.99998888} will show at least 4 and up to 8 decimal places.

 

To allow entering of numbers either with or without separators and optional decimal places combine two patterns. 

num{zzzzzzzzz9.88888888}|num{z,zzz,zzz,zz9.88888888}

4 replies

manu-gupta
November 2, 2021
<?xml version="1.0" encoding="UTF-8"?>
<?xfa generator="Designer_V6.5.0.20201118.1.940732" APIVersion="3.6.20252.0"?>
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/" timeStamp="2021-11-02T12:47:42Z" uuid="61640cd3-7c86-45db-9541-46c82d3a5a42">
<template xmlns="http://www.xfa.org/schema/xfa-template/3.6/">
   <?formServer defaultPDFRenderFormat acrobat11.0dynamic?>
   <subform name="form1" layout="tb" locale="en_US" restoreState="auto">
      <pageSet>
         <pageArea name="Page1" id="Page1">
            <contentArea x="0.25in" y="0.25in" w="576pt" h="756pt"/>
            <medium stock="default" short="612pt" long="792pt"/>
            <?templateDesigner expand 1?></pageArea>
         <?templateDesigner expand 1?></pageSet>
      <subform w="576pt" h="756pt">
         <draw name="Quantity" w="27.869mm" h="6.35mm">
            <value>
               <text>Quantity</text>
            </value>
            <ui>
               <textEdit/>
            </ui>
            <font weight="bold"/>
         </draw>
         <field name="quantityfield" w="60.678mm" x="31.75mm" h="6.421mm">
            <ui>
               <numericEdit>
                  <border>
                     <edge presence="hidden"/>
                     <edge presence="hidden"/>
                     <edge/>
                     <edge presence="hidden"/>
                  </border>
                  <margin/>
               </numericEdit>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </ui>
            <font size="8pt" typeface="Charles Modern" weight="bold" letterSpacing="-0.005em" kerningMode="pair"/>
            <margin topInset="0mm" bottomInset="0mm" leftInset="0mm" rightInset="0mm"/>
            <para vAlign="middle" marginLeft="3pt" spaceAbove="0pt" spaceBelow="0pt"/>
            <value>
               <decimal fracDigits="8" leadDigits="10"/>
            </value>
            <assist>
               <toolTip>Quantity</toolTip>
               <speak>Quantity</speak>
            </assist>
            <bind>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </bind>
            <format>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </format>
            <validate>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </validate>
         </field>
         <field name="DollarField" w="56.302mm" h="5.334mm" x="69.85mm" y="66.675mm">
            <ui>
               <numericEdit>
                  <border>
                     <edge presence="hidden"/>
                     <edge thickness="0.0882mm" presence="hidden"/>
                     <edge thickness="0.0882mm"/>
                     <edge thickness="0.0882mm" presence="hidden"/>
                     <corner presence="hidden" thickness="0.176mm"/>
                     <corner thickness="0.088mm" presence="hidden"/>
                     <corner thickness="0.088mm"/>
                     <corner thickness="0.088mm" presence="hidden"/>
                  </border>
                  <margin/>
               </numericEdit>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </ui>
            <font size="8pt" typeface="Charles Modern" kerningMode="pair" letterSpacing="-0.005em" weight="bold"/>
            <margin topInset="0mm" bottomInset="0mm" leftInset="0mm" rightInset="2.4694mm"/>
            <para vAlign="bottom" marginLeft="3.002pt" spaceBelow="1pt"/>
            <value>
               <decimal fracDigits="-1"/>
            </value>
            <caption reserve="2.0472mm">
               <value>
                  <text>$ </text>
               </value>
               <font size="8pt" typeface="Charles Modern" baselineShift="0pt" kerningMode="pair" letterSpacing="-0.005em"/>
               <para vAlign="bottom" spaceAbove="0pt" spaceBelow="1pt" textIndent="0pt" marginLeft="0pt" marginRight="0pt"/>
            </caption>
            <assist>
               <toolTip>Please specify dollar amount.</toolTip>
               <speak priority="caption">Please specify dollar amount.</speak>
            </assist>
            <format>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </format>
            <bind match="none">
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </bind>
            <validate>
               <picture>num{z,zzz,zzz,zz9.zzzzzzz9}</picture>
            </validate>
         </field>
         <?templateDesigner expand 1?></subform>
      <proto/>
      <desc>
         <text name="version">6.5.0.20210825.1.942814.932721</text>
      </desc>
      <?templateDesigner expand 1?></subform>
   <?templateDesigner DefaultPreviewDynamic 1?>
   <?templateDesigner DefaultRunAt client?>
   <?templateDesigner Grid show:1, snap:1, units:0, color:ff8080, origin:(0,0), interval:(125000,125000)?>
   <?templateDesigner DefaultCaptionFontSettings face:Myriad Pro;size:10;weight:normal;style:normal?>
   <?templateDesigner DefaultValueFontSettings face:Myriad Pro;size:10;weight:normal;style:normal?>
   <?templateDesigner DefaultLanguage JavaScript?>
   <?acrobat JavaScript strictScoping?>
   <?templateDesigner WidowOrphanControl 0?>
   <?templateDesigner SavePDFWithLog 0?>
   <?templateDesigner FormTargetVersion 36?>
   <?templateDesigner Zoom 90?>
   <?templateDesigner SaveTaggedPDF 0?>
   <?templateDesigner SavePDFWithEmbeddedFonts 0?>
   <?templateDesigner Rulers horizontal:1, vertical:1, guidelines:1, crosshairs:0?></template>
<config xmlns="http://www.xfa.org/schema/xci/3.0/">
   <agent name="designer">
      <!--  [0..n]  -->
      <destination>pdf</destination>
      <pdf>
         <!--  [0..n]  -->
         <fontInfo/>
      </pdf>
   </agent>
   <present>
      <!--  [0..n]  -->
      <pdf>
         <!--  [0..n]  -->
         <fontInfo>
            <embed>0</embed>
         </fontInfo>
         <tagged>0</tagged>
         <version>1.7</version>
         <adobeExtensionLevel>11</adobeExtensionLevel>
      </pdf>
      <xdp>
         <packets>*</packets>
      </xdp>
   </present>
   <psMap>
      <font typeface="Charles Modern" psName="CharlesModern-Bold" weight="bold" posture="normal"/>
      <font typeface="Charles Modern" psName="CharlesModern" weight="normal" posture="normal"/>
      <font typeface="Charles Modern Light" psName="CharlesModern-Light" weight="normal" posture="normal"/>
   </psMap>
</config>
<localeSet xmlns="http://www.xfa.org/schema/xfa-locale-set/2.7/">
   <locale name="en_US" desc="English (United States)">
      <calendarSymbols name="gregorian">
         <monthNames>
            <month>January</month>
            <month>February</month>
            <month>March</month>
            <month>April</month>
            <month>May</month>
            <month>June</month>
            <month>July</month>
            <month>August</month>
            <month>September</month>
            <month>October</month>
            <month>November</month>
            <month>December</month>
         </monthNames>
         <monthNames abbr="1">
            <month>Jan</month>
            <month>Feb</month>
            <month>Mar</month>
            <month>Apr</month>
            <month>May</month>
            <month>Jun</month>
            <month>Jul</month>
            <month>Aug</month>
            <month>Sep</month>
            <month>Oct</month>
            <month>Nov</month>
            <month>Dec</month>
         </monthNames>
         <dayNames>
            <day>Sunday</day>
            <day>Monday</day>
            <day>Tuesday</day>
            <day>Wednesday</day>
            <day>Thursday</day>
            <day>Friday</day>
            <day>Saturday</day>
         </dayNames>
         <dayNames abbr="1">
            <day>Sun</day>
            <day>Mon</day>
            <day>Tue</day>
            <day>Wed</day>
            <day>Thu</day>
            <day>Fri</day>
            <day>Sat</day>
         </dayNames>
         <meridiemNames>
            <meridiem>AM</meridiem>
            <meridiem>PM</meridiem>
         </meridiemNames>
         <eraNames>
            <era>BC</era>
            <era>AD</era>
         </eraNames>
      </calendarSymbols>
      <datePatterns>
         <datePattern name="full">EEEE, MMMM D, YYYY</datePattern>
         <datePattern name="long">MMMM D, YYYY</datePattern>
         <datePattern name="med">MMM D, YYYY</datePattern>
         <datePattern name="short">M/D/YY</datePattern>
      </datePatterns>
      <timePatterns>
         <timePattern name="full">h:MM:SS A Z</timePattern>
         <timePattern name="long">h:MM:SS A Z</timePattern>
         <timePattern name="med">h:MM:SS A</timePattern>
         <timePattern name="short">h:MM A</timePattern>
      </timePatterns>
      <dateTimeSymbols>GyMdkHmsSEDFwWahKzZ</dateTimeSymbols>
      <numberPatterns>
         <numberPattern name="numeric">z,zz9.zzz</numberPattern>
         <numberPattern name="currency">$z,zz9.99|($z,zz9.99)</numberPattern>
         <numberPattern name="percent">z,zz9%</numberPattern>
      </numberPatterns>
      <numberSymbols>
         <numberSymbol name="decimal">.</numberSymbol>
         <numberSymbol name="grouping">,</numberSymbol>
         <numberSymbol name="percent">%</numberSymbol>
         <numberSymbol name="minus">-</numberSymbol>
         <numberSymbol name="zero">0</numberSymbol>
      </numberSymbols>
      <currencySymbols>
         <currencySymbol name="symbol">$</currencySymbol>
         <currencySymbol name="isoname">USD</currencySymbol>
         <currencySymbol name="decimal">.</currencySymbol>
      </currencySymbols>
      <typefaces>
         <typeface name="Myriad Pro"/>
         <typeface name="Minion Pro"/>
         <typeface name="Courier Std"/>
         <typeface name="Adobe Pi Std"/>
         <typeface name="Adobe Hebrew"/>
         <typeface name="Adobe Arabic"/>
         <typeface name="Adobe Thai"/>
         <typeface name="Kozuka Gothic Pro-VI M"/>
         <typeface name="Kozuka Mincho Pro-VI R"/>
         <typeface name="Adobe Ming Std L"/>
         <typeface name="Adobe Song Std L"/>
         <typeface name="Adobe Myungjo Std M"/>
         <typeface name="Adobe Devanagari"/>
      </typefaces>
   </locale>
</localeSet>
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c015 81.159809, 2016/09/10-01:42:48        ">
   <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
      <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/" xmlns:desc="http://ns.adobe.com/xfa/promoted-desc/" rdf:about="">
         <xmp:MetadataDate>2021-11-02T12:47:42Z</xmp:MetadataDate>
         <xmp:CreatorTool>Designer 6.5</xmp:CreatorTool>
         <pdfuaid:part>1</pdfuaid:part>
         <pdf:Producer>Designer 6.5</pdf:Producer>
         <xmpMM:DocumentID>uuid:61640cd3-7c86-45db-9541-46c82d3a5a42</xmpMM:DocumentID>
         <desc:version rdf:parseType="Resource">
            <rdf:value>6.5.0.20210825.1.942814.932721</rdf:value>
            <desc:ref>/template/subform[1]</desc:ref>
         </desc:version>
      </rdf:Description>
   </rdf:RDF>
</x:xmpmeta></xdp:xdp>
Kosta_Prokopiu1
Adobe Employee
Adobe Employee
November 2, 2021

HI @manu-gupta ,

 

your patterns are too long. Max number of digits are 15, change to num{z,zzz,zzz,zz9.zzzz9} and it will work. In your case 10 digits before and 5 digits after the decimal point.

Kosta

Mayank_Tiwari
Adobe Employee
Adobe Employee
November 2, 2021

Remove all the patterns and use the following script on the exit event of the field to add the trailing decimal zeros.

var n = Number(this.rawValue);
this.rawValue = n.toFixed(8);

 

Kosta_Prokopiu1
Adobe Employee
Adobe Employee
November 2, 2021

@mayank_tiwari nice. Only thing is that without patterns you have to enter the numbers as 135235234.250885 but then it gets converted to 135,235,234.250885 .  

Mayank_Tiwari
Adobe Employee
Adobe Employee
November 2, 2021

Yes, this seems to be the default behavior of JavaScript in Designer.

radzmar
radzmarAccepted solution
November 2, 2021

Your patterns aren't correct for the decimal places.

Use num{z,zzz,zzz,zz9.88888888} instead. The 8 stands for an optional decimal place which is not 0.

1,132,235,234.25024 will be formatted as 1,132,235,234.25024 an 1,132,235,234.25000000 as 1,132,235,234.25.

 

To display a fixed number of decimal places use 9 instead of 8. 

num{z,zzz,zzz,zz9.99999999} will show always 8 decimal places.

num{z,zzz,zzz,zz9.99998888} will show at least 4 and up to 8 decimal places.

 

To allow entering of numbers either with or without separators and optional decimal places combine two patterns. 

num{zzzzzzzzz9.88888888}|num{z,zzz,zzz,zz9.88888888}

manu-gupta
November 3, 2021

Yes, we are able to achieve close to what we needed but with 7 digits after decimal.

 

Strangely, with this regex we are having extra decimal like

12345 is changing to 12345.

It is not getting removed or worst we have to add JS overhead to trim last char by getting the value and checking if last char is decimal

Any simpler approach to remove this extra decimal?

 

Kosta_Prokopiu1
Adobe Employee
Adobe Employee
November 3, 2021

🙂 these patterns can be a handfull. 

Try this approach:
Display pattern: num{z,zzz,zzz,zz9.88888888}

Edit pattern: num{zzzzzzzzz9.88888888}|num{z,zzz,zzz,zz9.88888888}

no validation and no data pattern.

This is the result: