从另一个 class 带来的 iTextSharp 字符串不会显示
iTextSharp string brought over from another class won't display
我正在使用 iTextSharp 处理各种报告的 C# 项目。
我使用一个 class 从订单中提取数据,然后使用另一个 class 在报告中显示数据。
我使用下面的循环从单独的 class 中提取音符数据(字符串):
for (int i = 0; i < ovNotes.Length; i++)
{
OVData.orderNotes += StripHTML(ovNotes[i].HTML);
}
ovNotes 是一个字符串,所以它 OVData.orderNotes
StripHTML 方法完全按照它说的去做,删除了 ovNotes
中出现的所有 <p>,<br />
等标签
接下来,在实际class中显示所有信息:
Phrase orderNotes = this.FormatPhrase(xOVData.orderNotes);
ColumnText.ShowTextAligned(instance.DirectContent, 0, orderNotes, 36f, 440f, 0f);
这会格式化订单备注,使其具有一致的字体、字体大小等。
但是,当代码运行时,订单注释不会出现。
当我用编造的短语替换 orderNotes 时,它显示正常,没有更改其他代码。
Phrase orderNotes = this.FormatPhrase(xOVData.orderNotes);
phrase testPhrase = this.FormatPhrase("This is a test");
ColumnText.ShowTextAligned(instance.DirectContent, 0, testPhrase, 36f, 440f, 0f);
/* Desired (and correct) output
* NOTES:
* This is a test
*/
Phrase orderNotes 包含来自 xOVdata.OrderNotes 的所有注释,但出于某种原因它拒绝显示。但是,我确实注意到,orderNotes 还包含原始注释所具有的所有  ,因为 StripHTML 方法不会删除它们。我环顾四周,发现的唯一结果是其他(人类)语言或使用 iTextSharp 编辑现有 PDF 的问题。
什么可能会阻止导入的字符串正确显示,尤其是当它在 ColumnText.ShowText... 正上方的行中包含所有正确数据时?
请阅读我对
的回答
正如我在那个答案中解释的那样,showTextAligned()
方法只能用于添加单行(文本不会分布在不同的行上,不允许换行)。在您的评论中,您指出您的 String
以换行符开头。这在 showTextAligned()
.
的上下文中无效
要解决您的问题,您要么必须切换到我的回答中所述的解决方案,要么必须删除所有换行符。
我正在使用 iTextSharp 处理各种报告的 C# 项目。 我使用一个 class 从订单中提取数据,然后使用另一个 class 在报告中显示数据。 我使用下面的循环从单独的 class 中提取音符数据(字符串):
for (int i = 0; i < ovNotes.Length; i++)
{
OVData.orderNotes += StripHTML(ovNotes[i].HTML);
}
ovNotes 是一个字符串,所以它 OVData.orderNotes
StripHTML 方法完全按照它说的去做,删除了 ovNotes
中出现的所有<p>,<br />
等标签
接下来,在实际class中显示所有信息:
Phrase orderNotes = this.FormatPhrase(xOVData.orderNotes);
ColumnText.ShowTextAligned(instance.DirectContent, 0, orderNotes, 36f, 440f, 0f);
这会格式化订单备注,使其具有一致的字体、字体大小等。 但是,当代码运行时,订单注释不会出现。 当我用编造的短语替换 orderNotes 时,它显示正常,没有更改其他代码。
Phrase orderNotes = this.FormatPhrase(xOVData.orderNotes);
phrase testPhrase = this.FormatPhrase("This is a test");
ColumnText.ShowTextAligned(instance.DirectContent, 0, testPhrase, 36f, 440f, 0f);
/* Desired (and correct) output
* NOTES:
* This is a test
*/
Phrase orderNotes 包含来自 xOVdata.OrderNotes 的所有注释,但出于某种原因它拒绝显示。但是,我确实注意到,orderNotes 还包含原始注释所具有的所有  ,因为 StripHTML 方法不会删除它们。我环顾四周,发现的唯一结果是其他(人类)语言或使用 iTextSharp 编辑现有 PDF 的问题。
什么可能会阻止导入的字符串正确显示,尤其是当它在 ColumnText.ShowText... 正上方的行中包含所有正确数据时?
请阅读我对
正如我在那个答案中解释的那样,showTextAligned()
方法只能用于添加单行(文本不会分布在不同的行上,不允许换行)。在您的评论中,您指出您的 String
以换行符开头。这在 showTextAligned()
.
要解决您的问题,您要么必须切换到我的回答中所述的解决方案,要么必须删除所有换行符。