@@ -1797,55 +1797,6 @@ public void release() {
17971797 getPdfObject ().release ();
17981798 }
17991799
1800- protected static Object [] splitDAelements (String da ) {
1801- PdfTokenizer tk = new PdfTokenizer (new RandomAccessFileOrArray (new RandomAccessSourceFactory ().createSource (PdfEncodings .convertToBytes (da , null ))));
1802- List <String > stack = new ArrayList <>();
1803- Object ret [] = new Object [3 ];
1804- try {
1805- while (tk .nextToken ()) {
1806- if (tk .getTokenType () == PdfTokenizer .TokenType .Comment )
1807- continue ;
1808- if (tk .getTokenType () == PdfTokenizer .TokenType .Other ) {
1809- String operator = tk .getStringValue ();
1810- if (operator .equals ("Tf" )) {
1811- if (stack .size () >= 2 ) {
1812- ret [DA_FONT ] = stack .get (stack .size () - 2 );
1813- ret [DA_SIZE ] = new Integer (stack .get (stack .size () - 1 ));
1814- }
1815- } else if (operator .equals ("g" )) {
1816- if (stack .size () >= 1 ) {
1817- float gray = new Float (stack .get (stack .size () - 1 ));
1818- if (gray != 0 ) {
1819- ret [DA_COLOR ] = new DeviceGray (gray );
1820- }
1821- }
1822- } else if (operator .equals ("rg" )) {
1823- if (stack .size () >= 3 ) {
1824- float red = new Float (stack .get (stack .size () - 3 ));
1825- float green = new Float (stack .get (stack .size () - 2 ));
1826- float blue = new Float (stack .get (stack .size () - 1 ));
1827- ret [DA_COLOR ] = new DeviceRgb (red , green , blue );
1828- }
1829- } else if (operator .equals ("k" )) {
1830- if (stack .size () >= 4 ) {
1831- float cyan = new Float (stack .get (stack .size () - 4 ));
1832- float magenta = new Float (stack .get (stack .size () - 3 ));
1833- float yellow = new Float (stack .get (stack .size () - 2 ));
1834- float black = new Float (stack .get (stack .size () - 1 ));
1835- ret [DA_COLOR ] = new DeviceCmyk (cyan , magenta , yellow , black );
1836- }
1837- }
1838- stack .clear ();
1839- } else {
1840- stack .add (tk .getStringValue ());
1841- }
1842- }
1843- } catch (IOException e ) {
1844-
1845- }
1846- return ret ;
1847- }
1848-
18491800 @ Override
18501801 protected boolean isWrappedObjectMustBeIndirect () {
18511802 return true ;
@@ -1946,6 +1897,55 @@ protected Object[] getFontAndSize(PdfDictionary asNormal) throws IOException {
19461897 return fontAndSize ;
19471898 }
19481899
1900+ protected static Object [] splitDAelements (String da ) {
1901+ PdfTokenizer tk = new PdfTokenizer (new RandomAccessFileOrArray (new RandomAccessSourceFactory ().createSource (PdfEncodings .convertToBytes (da , null ))));
1902+ List <String > stack = new ArrayList <>();
1903+ Object ret [] = new Object [3 ];
1904+ try {
1905+ while (tk .nextToken ()) {
1906+ if (tk .getTokenType () == PdfTokenizer .TokenType .Comment )
1907+ continue ;
1908+ if (tk .getTokenType () == PdfTokenizer .TokenType .Other ) {
1909+ String operator = tk .getStringValue ();
1910+ if (operator .equals ("Tf" )) {
1911+ if (stack .size () >= 2 ) {
1912+ ret [DA_FONT ] = stack .get (stack .size () - 2 );
1913+ ret [DA_SIZE ] = new Integer (stack .get (stack .size () - 1 ));
1914+ }
1915+ } else if (operator .equals ("g" )) {
1916+ if (stack .size () >= 1 ) {
1917+ float gray = new Float (stack .get (stack .size () - 1 ));
1918+ if (gray != 0 ) {
1919+ ret [DA_COLOR ] = new DeviceGray (gray );
1920+ }
1921+ }
1922+ } else if (operator .equals ("rg" )) {
1923+ if (stack .size () >= 3 ) {
1924+ float red = new Float (stack .get (stack .size () - 3 ));
1925+ float green = new Float (stack .get (stack .size () - 2 ));
1926+ float blue = new Float (stack .get (stack .size () - 1 ));
1927+ ret [DA_COLOR ] = new DeviceRgb (red , green , blue );
1928+ }
1929+ } else if (operator .equals ("k" )) {
1930+ if (stack .size () >= 4 ) {
1931+ float cyan = new Float (stack .get (stack .size () - 4 ));
1932+ float magenta = new Float (stack .get (stack .size () - 3 ));
1933+ float yellow = new Float (stack .get (stack .size () - 2 ));
1934+ float black = new Float (stack .get (stack .size () - 1 ));
1935+ ret [DA_COLOR ] = new DeviceCmyk (cyan , magenta , yellow , black );
1936+ }
1937+ }
1938+ stack .clear ();
1939+ } else {
1940+ stack .add (tk .getStringValue ());
1941+ }
1942+ }
1943+ } catch (IOException e ) {
1944+
1945+ }
1946+ return ret ;
1947+ }
1948+
19491949 /**
19501950 * Draws the visual appearance of text in a form field.
19511951 *
@@ -1999,8 +1999,6 @@ protected void drawTextAppearance(Rectangle rect, PdfFont font, int fontSize, St
19991999 endVariableText ();
20002000
20012001 appearance .getPdfObject ().setData (stream .getBytes ());
2002-
2003- // return stream.getBytes();
20042002 }
20052003
20062004 /**
@@ -2033,6 +2031,10 @@ protected void drawMultiLineTextAppearance(Rectangle rect, PdfFont font, int fon
20332031
20342032 Canvas modelCanvas = new Canvas (canvas , getDocument (), new Rectangle (3 , 0 , Math .max (0 , width - 6 ), Math .max (0 , height - 2 )));
20352033 for (int index = 0 ; index < strings .size (); index ++) {
2034+ Boolean isFull = modelCanvas .getRenderer ().getPropertyAsBoolean (Property .FULL );
2035+ if (isFull != null && isFull ) {
2036+ break ;
2037+ }
20362038 Paragraph paragraph = new Paragraph (strings .get (index )).setFont (font ).setFontSize (fontSize ).setMargins (0 , 0 , 0 , 0 ).setMultipliedLeading (1 );
20372039 if (color != null ) {
20382040 paragraph .setFontColor (color );
@@ -2055,8 +2057,6 @@ protected void drawMultiLineTextAppearance(Rectangle rect, PdfFont font, int fon
20552057 endVariableText ();
20562058
20572059 appearance .getPdfObject ().setData (stream .getBytes ());
2058-
2059- // return stream.getBytes();
20602060 }
20612061
20622062 /**
0 commit comments