最近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である可能性があることを示しています...この修正のための手がかりまたは解決策...?
Ok ...次のバージョンを待つ...今のところ、コードが正常に実行されてからv7.0.1にロールバックします。 – user3658777