我有一个带有波斯文化数字的变量,如下所示:
string Value="۱۰۳۶۷۵۱";
我想将此数字转换为英文版本并再次将其保存在我的字符串中,例如
Value="1036751";
如果我可以使用像文化信息这样的简单方法而不是开关盒,请帮助我如何做到这一点
我有一个带有波斯文化数字的变量,如下所示:
string Value="۱۰۳۶۷۵۱";
我想将此数字转换为英文版本并再次将其保存在我的字符串中,例如
Value="1036751";
如果我可以使用像文化信息这样的简单方法而不是开关盒,请帮助我如何做到这一点
您可以使用多种工具来做到这一点。iTextPdfSharp 可能会做到这一点。这相当于打开文档并在目录中浏览包含书签的树。他们的代码运行良好,但请务必下载规范,以便了解树的结构。我使用的是 Acrobat 的原始版本,我的许多工程师同事觉得书签树有点过于复杂。
BitMiracle 提供了类似的代码。他们经常在 Stack Overflow 上巡逻,所以您也可能会看到他们的回答(嗨!) - 您可以在此处查看他们用于创作书签的工作示例。
如果你愿意付钱,这很容易使用Atalasoft的DotPdf(免责声明:我为 Atalasoft 工作并编写了几乎所有的 DotPdf)。在我们的 API 中,我们尝试尽可能隐藏结构的复杂性(例如,如果您想迭代在单击书签时采取的一系列动作链,它是 foreach 而不是 tree walk)并且我们'已将书签树包装到标准List<T>
集合中。
public void WalkBookmarks(Stream pdf)
{
// open the doc
PdfDocument doc = new PdfDocument(pdf);
if (doc.BookmarkTree != null)
{
// walk the list of top level bookmarks
WalkBookmarks(doc.BookmarkTree.Bookmarks, 0);
}
}
public void WalkBookmarks(PdfBookmarkList list, int depth)
{
if (list == null) return;
foreach (PdfBookmark bookmark in list)
{
// indent to the depth of the list and write the Text
// you can also get the color, basic font styling and
// the action associated with the bookmark
for (i = 0; i < depth; i++) Console.Write(" ");
Console.Writeline(bookmark.Text);
// recurse on any children
WalkBookmarks(bookmark.Children, depth + 1);
}
}
您可以使用Windows.Globalization.NumberFormatting.DecimalFormatter类来解析字符串。这将解析任何支持的数字系统中的字符串(只要它是内部连贯的)。
PDF 可以包含至少三种不同的东西,可以称为“目录”:
对于第三种情况,我不知道任何开箱即用或易于实施的解决方案。其他情况更简单。
对于第一种情况,几乎任何 PDF 库都可以。@plinth(嗨!)针对这种情况至少提供了两种解决方案。
对于第二种情况,可以使用Docotic.Pdf library实现解决方案。基本上,您可以尝试:
如果您的案例是“超链接列表”,那么从链接目标示例中提取文本可能会为您提供一些开始的线索。
免责声明:我为 Docotic.Pdf 库的供应商 Bit Miracle 工作。
您需要使用 pdflib 之类的 pdf 库才能阅读 pdf 文件 (http://www.pdflib.com/)。这应该可以解决问题,祝你好运!