2017-02-21 6 views
0

最近iText7プロジェクトを7.0.1から7.0.2にアップグレードしました。その後、プロジェクトを再構築しようとして単体テストを行いました。単体テストでエラーが出て、単体テストをデバッグしようとしました。iText 7.0.2でテーブルオブジェクトを追加できませんでした

例外メッセージ:結果は、コードが同じであるが、それはV7.0.1上でスムーズに実行されますが、以下の例外がv7.0.2に引っ掛かっていた...私は前に見つかっていない奇妙な例外があるある

"Nullableオブジェクトには値が必要です。"

例外のStackTrace:

System.ThrowHelper.ThrowInvalidOperationExceptionで(ExceptionResource リソース) iText.Layout.Renderer.RootRenderer.AddChild(IRendererでiText.Layout.Renderer.TableRenderer.Layout(LayoutContext layoutContext)でCで KMK_Core.Core._Core_PrintKMK()で iText.Layout.Document.Add(IBlockElement要素)で iText.Layout.RootElement`1.Add(IBlockElement要素)でレンダラ):\ユーザーは\ Jeffry Angtoni \ソース\ Repos \ kmk-core-ng \ KMK NG \ KMK Core \ Core.cs:行332

以下は、3210

私のテーブル生成コードです:

以下
Table tblStudentIdentity = new Table(new float[] { 3.5f, .2f, 5f }); 
tblStudentIdentity.SetWidthPercent(80f); 

_Core_SetIdentityTableValue(ref tblStudentIdentity, "NAMA", "Name", "LEONARDO DICAPRIO"); 
_Core_SetIdentityTableValue(ref tblStudentIdentity, "NIM", "Student Number", "1301566255"); 
_Core_SetIdentityTableValue(ref tblStudentIdentity, "FAKULTAS/SEKOLAH", "Faculty/School", "", "School of Computer Science"); 

tblStudentIdentity.SetRelativePosition(115f, 20f, 0f, 0f); 
_doc.Add(tblStudentIdentity); 

は私の_Core_SetIdentityTableValue機能である:V7.0.1が正常に上記のコードを実行されているので、

private int _Core_SetIdentityTableValue(ref Table tableObject, string LeftLabelID = "", string LeftLabelEN = "", string RightValueID = "", string RightValueEN = "") 
{ 
    int Result = 0; 
    Text txtOpenInfo = new Text("(").AddStyle(StyleHelper.lblIDStyle); 
    Text txtCloseInfo = new Text(")").AddStyle(StyleHelper.lblIDStyle); 
    Text txtColonInfo = new Text(":").AddStyle(StyleHelper.lblIDStyle); 

    Paragraph lblLeftPrgrh = new Paragraph(); 
    if (LeftLabelEN != "" && LeftLabelID != "") 
    { 
     Text lblID = new Text(LeftLabelID + " ").AddStyle(StyleHelper.lblIDStyle); 
     Text lblEN = new Text(LeftLabelEN).AddStyle(StyleHelper.lblENStyle); 
     lblLeftPrgrh.Add(lblID).Add(txtOpenInfo).Add(lblEN).Add(txtCloseInfo); 
    }else if (LeftLabelEN == "" && LeftLabelID != "") 
    { 
     Text lblID = new Text(LeftLabelID).AddStyle(StyleHelper.lblIDStyle); 
     lblLeftPrgrh.Add(lblID); 
    }else if (LeftLabelEN != "" && LeftLabelID == "") 
    { 
     Text lblEN = new Text(LeftLabelEN).AddStyle(StyleHelper.lblENStyle); 
     lblLeftPrgrh.Add(lblEN); 
    }else 
    { 
     Text lblErrorLeft = new Text("Error-NoValue"); 
     lblLeftPrgrh.Add(lblErrorLeft); 
     Result = 1; 
    } 

    Paragraph lblRightPrgrh = new Paragraph(); 
    if (RightValueEN != "" && RightValueID != "") 
    { 
     Text lblValID = new Text(RightValueID + " ").AddStyle(StyleHelper.lblIDStyle); 
     Text lblValEN = new Text(RightValueEN).AddStyle(StyleHelper.lblENStyle); 
     lblRightPrgrh.Add(lblValID).Add(txtOpenInfo).Add(lblValEN).Add(txtCloseInfo); 
    }else if (RightValueEN == "" && RightValueID != "") 
    { 
     Text lblValID = new Text(RightValueID).AddStyle(StyleHelper.lblIDStyle); 
     lblRightPrgrh.Add(lblValID); 
    }else if (RightValueEN != "" && RightValueID == "") 
    { 
     Text lblValEN = new Text(RightValueEN).AddStyle(StyleHelper.lblENStyle); 
     lblRightPrgrh.Add(lblValEN); 
    }else 
    { 
     Text lblValError = new Text("Error-NoValue"); 
     lblRightPrgrh.Add(lblValError); 
     Result = 1; 
    } 

    Paragraph lblCenterPrgrh = new Paragraph(txtColonInfo); 

    Cell cellLeft = new Cell(); 
    cellLeft.Add(lblLeftPrgrh) 
     .SetBorder(Border.NO_BORDER) 
     .SetVerticalAlignment(VerticalAlignment.TOP); 
    Cell cellMiddle = new Cell(); 
    cellMiddle.Add(lblCenterPrgrh) 
     .SetBorder(Border.NO_BORDER) 
     .SetVerticalAlignment(VerticalAlignment.TOP); 
    Cell cellRight = new Cell(); 
    cellRight.Add(lblRightPrgrh) 
     .SetBorder(Border.NO_BORDER) 
     .SetVerticalAlignment(VerticalAlignment.TOP); 
    tableObject.AddCell(cellLeft).AddCell(cellMiddle).AddCell(cellRight); 
    return Result; 
} 

はv7.0.2からのバグこのです...?また、Tableオブジェクトがnullではないことを確認しましたが、例外はオブジェクトがnullである可能性があることを示しています...この修正のための手がかりまたは解決策...?

答えて

1

残念ながら、これは実際には7.0.2のバグであり、テーブルの相対的な配置の処理が不適切で、JavaとC#の両方に存在します。既に修正されていますが、修正は7.0.3リリースでのみ利用可能になります。ただし、Artifactoryからスナップショットバージョン(C#で7.0.2.1とも呼ばれます)をダウンロードできます。

+0

Ok ...次のバージョンを待つ...今のところ、コードが正常に実行されてからv7.0.1にロールバックします。 – user3658777

関連する問題