0

我有一个带有波斯文化数字的变量,如下所示:
string Value="۱۰۳۶۷۵۱";
我想将此数字转换为英文版本并再次将其保存在我的字符串中,例如
Value="1036751";

如果我可以使用像文化信息这样的简单方法而不是开关盒,请帮助我如何做到这一点

4

4 回答 4

1

您可以使用多种工具来做到这一点。iTextPdfSharp 可能会做到这一点。这相当于打开文档并在目录中浏览包含书签的树。他们的代码运行良好,但请务必下载规范,以便了解树的结构。我使用的是 Acrobat 的原始版本,我的许多工程师同事觉得书签树有点过于复杂。

BitMiracle 提供了类似的代码。他们经常在 Stack Overflow 上巡逻,所以您也可能会看到他们的回答(嗨!) - 您可以在此处查看他们用于创作书签的工作示例。

如果你愿意付钱,这很容易使用AtalasoftDotPdf(免责声明:我为 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);
    }
}
于 2013-01-22T13:59:16.607 回答
1

您可以使用Windows.Globalization.NumberFormatting.DecimalFormatter类来解析字符串。这将解析任何支持的数字系统中的字符串(只要它是内部连贯的)。

于 2013-09-24T18:26:26.067 回答
0

PDF 可以包含至少三种不同的东西,可以称为“目录”:

  1. 文档大纲(书签),一组特定的 PDF 结构
  2. 文档开头的超链接列表。每个超链接都指向文档所在的位置
  3. 文本字符串列表,其中每个字符串命名文档的一部分,并且可以选择指定该部分从哪个页面开始。

对于第三种情况,我不知道任何开箱即用或易于实施的解决方案。其他情况更简单。

对于第一种情况,几乎任何 PDF 库都可以。@plinth(嗨!)针对这种情况至少提供了两种解决方案。

对于第二种情况,可以使用Docotic.Pdf library实现解决方案。基本上,您可以尝试:

  • 枚举文档中的所有链接
  • 找到所有彼此靠近的链接(您需要建立一些启发式方法来将什么视为“关闭”)
  • 从找到的链接中检索文本

如果您的案例是“超链接列表”,那么从链接目标示例中提取文本可能会为您提供一些开始的线索。

免责声明:我为 Docotic.Pdf 库的供应商 Bit Miracle 工作。

于 2013-01-22T16:48:46.643 回答
-1

您需要使用 pdflib 之类的 pdf 库才能阅读 pdf 文件 (http://www.pdflib.com/)。这应该可以解决问题,祝你好运!

于 2013-01-22T13:29:15.787 回答