PHP7.1とMPDFの表示エラーへのアップグレード - 30648行目で発生した数値以外の値 -- mpdf フィールド 関連 問題

Upgrade to PHP7.1 and MPDF show error - A non-numeric value encountered at line 30648












9
vote

問題

日本語

PHP 5.xとMPDF 6.xを長時間使用しています。

今週はシステムをPHP7.1にアップグレードすることにしましたが、それでもMPDF6を使用しています。

アップグレード後にいくつかの問題に直面しています。

問題1 ::

コンソールの表示エラーメッセージ:クラス名と同じ名前のコンストラクタは廃止されます。

各PHPファイルとクラスの検索を行い、コンストラクタ関数を__construct(...)

に置き換えます。

問題2 ::

コンソールの表示エラーメッセージ::プロパティIDを$ ATTRに割り当てることはできません 私はfunction mergecss(...)でmpdf.phpファイルに行きます。私は3行目に新しいコードを追加します。

if(空($ attr)){$ attr = array();}

問題3 ::

コンソールの表示エラーメッセージ:: "30648行目で"非数値の値が発生しました。 "

この問題を解決するための私の解決策は単なる::

  1. MPDF.phpファイルのmpdf-> convertsize()関数をMPDF7からコーディングして置換します。

    finction関数conversize()で関数conversize()とmultiplyfontsize();

  2. > https://github.com/mpdf/mpdf/blob/開発/ SRC / SIZECONVERTER.PHP

    1. MPDFクラス
    2. に定数を追加

      const scale = 72 / 25.4;

      この問題に直面する人のためにこの助けを願っています。

英語

I'm using PHP 5.x and mPDF 6.x for long time.

This week I decide to upgrade system to PHP7.1 but still using mPDF6.

I face some problem after upgrading.

PROBLEM 1::

Console show error message: constructer with the same name as class name is deprecate.

I go through each php files and find classes, then replace constructer function with __construct(...)

PROBLEM 2::

Console show error message:: Can not assign property ID to $attr I go to file mPDF.php in function MergeCSS(...). I add new line of code at third line.

if (empty($attr)) { $attr = array();}

PROBLEM 3::

Console show error message following this:: "A non-numeric value encountered" at line 30648."

My solution to solve this problem is just::

  1. replace mPDF->ConvertSize() function in mPDF.php file with coding from MPDF7.

    By replace function ConvertSize() with function ConvertSize() and multiplyFontSize();

https://github.com/mpdf/mpdf/blob/development/src/SizeConverter.php

  1. Add constant to mPDF class

const SCALE = 72 / 25.4;

Hope this help for someone who face this problem.

</div
  
 
 

回答リスト

7
 
vote

完全な「数値でない値が発生した」という完全な人には修正されています。 commit を扱うMPDF 6.1.3の私のフォークレポを見てください。

 

For people who want a complete "A non-numeric value encountered" fix. Take a look at my forked repo of mpdf 6.1.3 with commit.

</div
 
 
2
 
vote

FYI:PHP7は、複数のデフォルトブロックを持つswitchステートメントに遭遇したときにコンパイル時エラーをスローします。 MPDFは、スイッチステートメントで複数のデフォルトブロックを使用します。

 

FYI: PHP7 throws a compile-time error when it encounters a switch statement with multiple default blocks. mpdf uses multiple default blocks in its switch statements.

</div
 
 
0
 
vote

関数 writeText <コード> 99887763 、および y を空の文字列として使用していたので、このエラーが発生しましたが、古いMPDFバージョンおよびPHP 5.6働いていました。これで代わりにゼロを使用するように変更しました。

 

I had this error because I was using the function writeText passing x and y as empty string, before with old mpdf version and php 5.6 it was working. Now I changed it to use zero instead.

</div
 
 
0
 
vote

バージョン8.0.0と同じエラーがあります。

私の解決策は次のとおりです.1行目のSRC / SizeConverter.phpでは、79行目にありました:

<事前> <コード> case '%': if ($fontsize && $usefontsize) { $size *= $fontsize / 100; } else { $size *= $maxsize / 100; } break;

変更:

<事前> <コード> case '%': if ($fontsize && $usefontsize) { $size *= $fontsize / 100; } else { $maxsize = str_replace('mm', '', $maxsize); $size *= $maxsize / 100; } break;
 

I have version 8.0.0 and the same error.

My solution was: in the file src/SizeConverter.php on the line 79 i had:

case '%':             if ($fontsize && $usefontsize) {                 $size *= $fontsize / 100;             } else {                 $size *= $maxsize / 100;             }             break; 

Change to:

case '%':             if ($fontsize && $usefontsize) {                 $size *= $fontsize / 100;             } else {                 $maxsize = str_replace('mm', '', $maxsize);                  $size *= $maxsize / 100;             }             break; 
</div
 
 

関連する質問

2  MPDFはMPDF.PHPの出力とPHPエラーなし  ( Mpdf no output and php errors in mpdf php ) 
CakePHPアプリケーションでPDPファイルを生成しようとしています。したがって、MPDFライブラリをベンダーとして使用します。しかし、私が非常に単純な出力を作ろうとするとうまくいきません。その後、Debugプロパティを使用すると、MPDF.phpファイル...

0  MPDFによって生成されたPDFのインポートにより、StartXrefエラーが発生します  ( Importing pdf generated by mpdf causes a startxref error ) 
おはようございます PDFを新しく生成されたPDFに連結しようとしていますが、StartXrefエラーを受信して​​います。 他のPDFとコードワードを罰金で試してみました。 MPDFによって生成されたPDFをインポートしている場合にのみ失敗します。 他の...

2  HREFはMPDFの動的URLで機能していません  ( A href is not working for dynamic url in mpdf ) 
PDF.ANCHORタグへのエクスポートはhttp:google.comのような静的URLのために機能していますが、PDFのためにMPDFモジュールを使用しているためでも機能していません。 <事前> <コード> $url = $fullBaseUrl.'/d...

1  MPDF:レイアウトを制御するためにCSSを使用する方法  ( Mpdf how to use css to control layout ) 
PhpexcelでMPDFを使用しています。私はCSSでレイアウトを設定しようとしています。私は仕事に何かを得ることができません。 <事前> <コード> // this has no effect $pdf->SetDefaultBodyCSS('color...

3  最初のページにのみヘッダーフッターを削除する方法 - MPDF  ( How to remove header footer only for the first page mpdf ) 
MPDFの2つの関数をすべてページ内のヘッダーとフッタを追加します。 sethtmlheader() sethtmlfooter() しかし、誰でも、PDFの最初のページからヘッダーとフッターを取り除くのを手伝ってください。 ...

1  PayPal IPN通知機能でMPDFを作成します  ( Make mpdf in paypal ipn notification function ) 
PayPal通知が「完全な」応答をするとPDFを作りたいので、そのPayPal通知機能にPDFを作成したいが、生成されず、エラーも表示されない。 <事前> <コード> function paypalNotificationFunctionTest() { ...

1  PDFファイル、各オブジェクトの生成MPDFでYIIフレームワーク2を使用して新しいページ  ( Generate pdf file each object in a new page using yii framework 2 with mpdf ) 
YIIフレームワーク2をMPDFで使用して、複数ページのPDFファイルを生成しようとしました。 ActiveRecord::find()->all(); でデータを取得しました。これは、多くのモデルオブジェクトを取り戻しました。複数のオブジェクトを持つ1つ...

0  Backdrop Webformの送信にMPDF印刷を追加する方法はありますか?  ( Is there a way to add mpdf print on a backdrop webform submission ) 
PHP V7.2.33ではBackdrop V1.16.2を使用しており、「MPDF」モジュールを使用しています。このモジュールのバージョン番号はありません。 ウェブフォームの送信にMPDFアイコンを持つことができるようにしたいのですが。 ウェブフォームには...

1  PHP生成HTMLテーブルからPDFの生成  ( Generating pdf from php generated html table ) 
だれでも、次のコードのためにMPDFを使ってPDFを生成するのに役立ちます。 <事前> <コード> <table width="360" height="161" border="1" class="tablestyle"> <tr> <td height="...

0  {Pageno}は$ pageenoをもたらしました  ( Pageno resulting in pageno ) 
スクリプトケースアプリケーションでMPDFを使用する: MPDF 8.0.0とPHP 7.0.22 を使用する <事前> <コード> $mpdf = new MpdfMpdf( [ 'mode' ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有