Gravity PDF - Version 6.5.1

Version Description

  • Housekeeping: Update mPDF to the latest version
  • Bug: Resolve custom font installation issue for some .ttf files
Download this release

Release Info

Developer Blue Liquid Designs
Plugin Icon 128x128 Gravity PDF
Version 6.5.1
Comparing to
See all releases

Code changes from version 6.5.0 to 6.5.1

README.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: https://gravitypdf.com/donate-to-plugin/
5
  Tags: gravityforms, gravity, forms, pdf, automation, attachment, email
6
  Requires at least: 5.3
7
  Tested up to: 6.1
8
- Stable tag: 6.5.0
9
  Requires PHP: 7.3
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl.txt
@@ -107,6 +107,10 @@ If you aren't able to meet the v6 minimum requirements [you can download v5 whic
107
 
108
  == Changelog ==
109
 
 
 
 
 
110
  = 6.5.0 =
111
  * Housekeeping: Update Global Extension Settings UI to be Gravity Forms 2.5 compatible
112
  * Housekeeping: Adjust how admin Notices are handled on Gravity PDF pages
5
  Tags: gravityforms, gravity, forms, pdf, automation, attachment, email
6
  Requires at least: 5.3
7
  Tested up to: 6.1
8
+ Stable tag: 6.5.1
9
  Requires PHP: 7.3
10
  License: GPLv2 or later
11
  License URI: http://www.gnu.org/licenses/gpl.txt
107
 
108
  == Changelog ==
109
 
110
+ = 6.5.1 =
111
+ * Housekeeping: Update mPDF to the latest version
112
+ * Bug: Resolve custom font installation issue for some .ttf files
113
+
114
  = 6.5.0 =
115
  * Housekeeping: Update Global Extension Settings UI to be Gravity Forms 2.5 compatible
116
  * Housekeeping: Adjust how admin Notices are handled on Gravity PDF pages
pdf.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  /*
3
  Plugin Name: Gravity PDF
4
- Version: 6.5.0
5
  Description: Automatically generate highly-customisable PDF documents using Gravity Forms.
6
  Author: Blue Liquid Designs
7
  Author URI: https://blueliquiddesigns.com.au
@@ -28,7 +28,7 @@ if ( ! defined( 'ABSPATH' ) ) {
28
  /*
29
  * Set base constants we'll use throughout the plugin
30
  */
31
- define( 'PDF_EXTENDED_VERSION', '6.5.0' ); /* the current plugin version */
32
  define( 'PDF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); /* plugin directory path */
33
  define( 'PDF_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); /* plugin directory url */
34
  define( 'PDF_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); /* the plugin basename */
1
  <?php
2
  /*
3
  Plugin Name: Gravity PDF
4
+ Version: 6.5.1
5
  Description: Automatically generate highly-customisable PDF documents using Gravity Forms.
6
  Author: Blue Liquid Designs
7
  Author URI: https://blueliquiddesigns.com.au
28
  /*
29
  * Set base constants we'll use throughout the plugin
30
  */
31
+ define( 'PDF_EXTENDED_VERSION', '6.5.1' ); /* the current plugin version */
32
  define( 'PDF_PLUGIN_DIR', plugin_dir_path( __FILE__ ) ); /* plugin directory path */
33
  define( 'PDF_PLUGIN_URL', plugin_dir_url( __FILE__ ) ); /* plugin directory url */
34
  define( 'PDF_PLUGIN_BASENAME', plugin_basename( __FILE__ ) ); /* the plugin basename */
src/assets/languages/gravity-forms-pdf-extended.pot CHANGED
@@ -6,7 +6,7 @@ msgstr ""
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
9
- "POT-Creation-Date: 2022-10-23 21:57+0000\n"
10
  "X-Poedit-Basepath: ..\n"
11
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
12
  "X-Poedit-SearchPath-0: .\n"
6
  "MIME-Version: 1.0\n"
7
  "Content-Type: text/plain; charset=UTF-8\n"
8
  "Content-Transfer-Encoding: 8bit\n"
9
+ "POT-Creation-Date: 2022-11-09 22:45+0000\n"
10
  "X-Poedit-Basepath: ..\n"
11
  "X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
12
  "X-Poedit-SearchPath-0: .\n"
vendor/composer/installed.json CHANGED
@@ -566,12 +566,12 @@
566
  "source": {
567
  "type": "git",
568
  "url": "https://github.com/mpdf/mpdf.git",
569
- "reference": "0db129a868557016614132e2adc67f9e4c048d5e"
570
  },
571
  "dist": {
572
  "type": "zip",
573
- "url": "https://api.github.com/repos/mpdf/mpdf/zipball/0db129a868557016614132e2adc67f9e4c048d5e",
574
- "reference": "0db129a868557016614132e2adc67f9e4c048d5e",
575
  "shasum": ""
576
  },
577
  "require": {
566
  "source": {
567
  "type": "git",
568
  "url": "https://github.com/mpdf/mpdf.git",
569
+ "reference": "3819711a98b062ddcd2c12f6334335d8c6ae3da1"
570
  },
571
  "dist": {
572
  "type": "zip",
573
+ "url": "https://api.github.com/repos/mpdf/mpdf/zipball/3819711a98b062ddcd2c12f6334335d8c6ae3da1",
574
+ "reference": "3819711a98b062ddcd2c12f6334335d8c6ae3da1",
575
  "shasum": ""
576
  },
577
  "require": {
vendor/composer/installed.php CHANGED
@@ -1,9 +1,9 @@
1
  <?php return array(
2
  'root' => array(
3
  'name' => 'gravitypdf/gravitypdf',
4
- 'pretty_version' => '6.5.0',
5
- 'version' => '6.5.0.0',
6
- 'reference' => '03285076ab5293f26e9ad0f410905727107db00d',
7
  'type' => 'library',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
@@ -20,9 +20,9 @@
20
  'dev_requirement' => false,
21
  ),
22
  'gravitypdf/gravitypdf' => array(
23
- 'pretty_version' => '6.5.0',
24
- 'version' => '6.5.0.0',
25
- 'reference' => '03285076ab5293f26e9ad0f410905727107db00d',
26
  'type' => 'library',
27
  'install_path' => __DIR__ . '/../../',
28
  'aliases' => array(),
@@ -85,7 +85,7 @@
85
  'mpdf/mpdf' => array(
86
  'pretty_version' => 'dev-master',
87
  'version' => 'dev-master',
88
- 'reference' => '0db129a868557016614132e2adc67f9e4c048d5e',
89
  'type' => 'library',
90
  'install_path' => __DIR__ . '/../mpdf/mpdf',
91
  'aliases' => array(),
1
  <?php return array(
2
  'root' => array(
3
  'name' => 'gravitypdf/gravitypdf',
4
+ 'pretty_version' => '6.5.1',
5
+ 'version' => '6.5.1.0',
6
+ 'reference' => 'e068af16c19accfab301e954fb49b1666833b74b',
7
  'type' => 'library',
8
  'install_path' => __DIR__ . '/../../',
9
  'aliases' => array(),
20
  'dev_requirement' => false,
21
  ),
22
  'gravitypdf/gravitypdf' => array(
23
+ 'pretty_version' => '6.5.1',
24
+ 'version' => '6.5.1.0',
25
+ 'reference' => 'e068af16c19accfab301e954fb49b1666833b74b',
26
  'type' => 'library',
27
  'install_path' => __DIR__ . '/../../',
28
  'aliases' => array(),
85
  'mpdf/mpdf' => array(
86
  'pretty_version' => 'dev-master',
87
  'version' => 'dev-master',
88
+ 'reference' => '3819711a98b062ddcd2c12f6334335d8c6ae3da1',
89
  'type' => 'library',
90
  'install_path' => __DIR__ . '/../mpdf/mpdf',
91
  'aliases' => array(),
vendor_prefixed/mpdf/mpdf/src/AssetFetcher.php CHANGED
@@ -73,7 +73,7 @@ class AssetFetcher implements \Psr\Log\LoggerAwareInterface
73
  } catch (\InvalidArgumentException $e) {
74
  $message = \sprintf('Unable to fetch remote content "%s" because of an error "%s"', $path, $e->getMessage());
75
  if ($this->mpdf->debug) {
76
- throw new \GFPDF_Vendor\Mpdf\MpdfException($message, 0, $e);
77
  }
78
  $this->logger->warning($message);
79
  }
73
  } catch (\InvalidArgumentException $e) {
74
  $message = \sprintf('Unable to fetch remote content "%s" because of an error "%s"', $path, $e->getMessage());
75
  if ($this->mpdf->debug) {
76
+ throw new \GFPDF_Vendor\Mpdf\MpdfException($message, 0, \E_ERROR, null, null, $e);
77
  }
78
  $this->logger->warning($message);
79
  }
vendor_prefixed/mpdf/mpdf/src/Mpdf.php CHANGED
@@ -22301,7 +22301,7 @@ class Mpdf implements \Psr\Log\LoggerAwareInterface
22301
  $th = $sum_h * $i / $this->NbCol;
22302
  foreach ($breaks as $bk => $val) {
22303
  if ($val > $th) {
22304
- if ($val - $th < $th - $breaks[$bk - 1]) {
22305
  $cbr[$i - 1] = $val;
22306
  } else {
22307
  $cbr[$i - 1] = $breaks[$bk - 1];
22301
  $th = $sum_h * $i / $this->NbCol;
22302
  foreach ($breaks as $bk => $val) {
22303
  if ($val > $th) {
22304
+ if (!$bk || $val - $th < $th - $breaks[$bk - 1]) {
22305
  $cbr[$i - 1] = $val;
22306
  } else {
22307
  $cbr[$i - 1] = $breaks[$bk - 1];
vendor_prefixed/mpdf/mpdf/src/TTFontFile.php CHANGED
@@ -2014,7 +2014,7 @@ class TTFontFile
2014
  $key = $vs['match'][1];
2015
  $tag = $v['tag'];
2016
  if (isset($loclsubs[$key])) {
2017
- ${$tag[$loclsubs[$key]]} = $sub;
2018
  }
2019
  $tmp =& ${$tag};
2020
  $tmp[\hexdec($key)] = \hexdec($sub);
@@ -2022,7 +2022,7 @@ class TTFontFile
2022
  $key = $vs['match'][0];
2023
  $tag = $v['tag'];
2024
  if (isset($loclsubs[$key])) {
2025
- ${$tag[$loclsubs[$key]]} = $sub;
2026
  }
2027
  $tmp =& ${$tag};
2028
  $tmp[\hexdec($key)] = \hexdec($sub);
@@ -2041,7 +2041,7 @@ class TTFontFile
2041
  $key = \substr($key, 6, 5);
2042
  $tag = $v['tag'];
2043
  if (isset($loclsubs[$key])) {
2044
- ${$tag[$loclsubs[$key]]} = $sub;
2045
  }
2046
  $tmp =& ${$tag};
2047
  $tmp[\hexdec($key)] = \hexdec($sub);
@@ -2049,7 +2049,7 @@ class TTFontFile
2049
  $key = \substr($key, 0, 5);
2050
  $tag = $v['tag'];
2051
  if (isset($loclsubs[$key])) {
2052
- ${$tag[$loclsubs[$key]]} = $sub;
2053
  }
2054
  $tmp =& ${$tag};
2055
  $tmp[\hexdec($key)] = \hexdec($sub);
@@ -2508,24 +2508,24 @@ class TTFontFile
2508
  $lup = $Lookup[$i]['Subtable'][$c]['SubstLookupRecord'][$b]['LookupListIndex'];
2509
  $seqIndex = $Lookup[$i]['Subtable'][$c]['SubstLookupRecord'][$b]['SequenceIndex'];
2510
  for ($lus = 0; $lus < $Lookup[$lup]['SubtableCount']; $lus++) {
2511
- if (\count($Lookup[$lup]['Subtable'][$lus]['subs'])) {
2512
- foreach ($Lookup[$lup]['Subtable'][$lus]['subs'] as $luss) {
2513
- $lookupGlyphs = $luss['Replace'];
2514
- $mLen = \count($lookupGlyphs);
2515
- // Only apply if the (first) 'Replace' glyph from the
2516
- // Lookup list is in the [inputGlyphs] at ['SequenceIndex']
2517
- // then apply the substitution
2518
- if (\strpos($inputGlyphs[$seqIndex], $lookupGlyphs[0]) === \false) {
2519
- continue;
2520
- }
2521
- // Returns e.g. ¦(0612)¦(ignore) (0613)¦(ignore) (0614)¦
2522
- $contextInputMatch = $this->_makeGSUBcontextInputMatch($inputGlyphs, $ignore, $lookupGlyphs, $seqIndex);
2523
- $REPL = \implode(" ", $luss['substitute']);
2524
- if (\strpos("isol fina fin2 fin3 medi med2 init ", $tag) !== \false && $scripttag == 'arab') {
2525
- $volt[] = ['match' => $lookupGlyphs[0], 'replace' => $REPL, 'tag' => $tag, 'prel' => $backtrackGlyphs, 'postl' => $lookaheadGlyphs, 'ignore' => $ignore];
2526
- } else {
2527
- $subRule['rules'][] = ['type' => $Lookup[$lup]['Type'], 'match' => $lookupGlyphs, 'replace' => $luss['substitute'], 'seqIndex' => $seqIndex, 'key' => $lookupGlyphs[0]];
2528
- }
2529
  }
2530
  }
2531
  }
2014
  $key = $vs['match'][1];
2015
  $tag = $v['tag'];
2016
  if (isset($loclsubs[$key])) {
2017
+ ${$tag}[$loclsubs[$key]] = $sub;
2018
  }
2019
  $tmp =& ${$tag};
2020
  $tmp[\hexdec($key)] = \hexdec($sub);
2022
  $key = $vs['match'][0];
2023
  $tag = $v['tag'];
2024
  if (isset($loclsubs[$key])) {
2025
+ ${$tag}[$loclsubs[$key]] = $sub;
2026
  }
2027
  $tmp =& ${$tag};
2028
  $tmp[\hexdec($key)] = \hexdec($sub);
2041
  $key = \substr($key, 6, 5);
2042
  $tag = $v['tag'];
2043
  if (isset($loclsubs[$key])) {
2044
+ ${$tag}[$loclsubs[$key]] = $sub;
2045
  }
2046
  $tmp =& ${$tag};
2047
  $tmp[\hexdec($key)] = \hexdec($sub);
2049
  $key = \substr($key, 0, 5);
2050
  $tag = $v['tag'];
2051
  if (isset($loclsubs[$key])) {
2052
+ ${$tag}[$loclsubs[$key]] = $sub;
2053
  }
2054
  $tmp =& ${$tag};
2055
  $tmp[\hexdec($key)] = \hexdec($sub);
2508
  $lup = $Lookup[$i]['Subtable'][$c]['SubstLookupRecord'][$b]['LookupListIndex'];
2509
  $seqIndex = $Lookup[$i]['Subtable'][$c]['SubstLookupRecord'][$b]['SequenceIndex'];
2510
  for ($lus = 0; $lus < $Lookup[$lup]['SubtableCount']; $lus++) {
2511
+ if (empty($Lookup[$lup]['Subtable'][$lus]['subs']) || !\is_array($Lookup[$lup]['Subtable'][$lus]['subs'])) {
2512
+ continue;
2513
+ }
2514
+ foreach ($Lookup[$lup]['Subtable'][$lus]['subs'] as $luss) {
2515
+ $lookupGlyphs = $luss['Replace'];
2516
+ // Only apply if the (first) 'Replace' glyph from the
2517
+ // Lookup list is in the [inputGlyphs] at ['SequenceIndex']
2518
+ // then apply the substitution
2519
+ if (\strpos($inputGlyphs[$seqIndex], $lookupGlyphs[0]) === \false) {
2520
+ continue;
2521
+ }
2522
+ // Returns e.g. ¦(0612)¦(ignore) (0613)¦(ignore) (0614)¦
2523
+ $contextInputMatch = $this->_makeGSUBcontextInputMatch($inputGlyphs, $ignore, $lookupGlyphs, $seqIndex);
2524
+ $REPL = \implode(" ", $luss['substitute']);
2525
+ if (\strpos("isol fina fin2 fin3 medi med2 init ", $tag) !== \false && $scripttag == 'arab') {
2526
+ $volt[] = ['match' => $lookupGlyphs[0], 'replace' => $REPL, 'tag' => $tag, 'prel' => $backtrackGlyphs, 'postl' => $lookaheadGlyphs, 'ignore' => $ignore];
2527
+ } else {
2528
+ $subRule['rules'][] = ['type' => $Lookup[$lup]['Type'], 'match' => $lookupGlyphs, 'replace' => $luss['substitute'], 'seqIndex' => $seqIndex, 'key' => $lookupGlyphs[0]];
2529
  }
2530
  }
2531
  }