以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于读取PDF导入表的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=162037)

--  作者:hongye
--  发布时间:2021/4/3 17:59:00
--  关于读取PDF导入表的问题
我想将PDF中的内容分别导入到“表A”和“表B”
“表A“

图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看
“表B“

图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看

分仓信息为PDF左上角的国内或者国外

我是小白,不是很懂,请附代码,谢谢



[此贴子已经被作者于2021/4/3 18:02:37编辑过]

--  作者:hongye
--  发布时间:2021/4/3 18:01:00
--  
附上文件
第三方控件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:itextsharp.zip
PDF文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:5l1611330 1-18.rar



--  作者:hongye
--  发布时间:2021/4/6 9:09:00
--  
蓝蓝,老师能不能帮帮我
--  作者:有点蓝
--  发布时间:2021/4/6 9:14:00
--  
参考:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=83249&skin=0

细节的东西请自行网上搜索itextsharp的用法

--  作者:hongye
--  发布时间:2021/4/6 10:15:00
--  
蓝蓝老师,本人是小白,根本看不懂网上关于itextsharp的文章,能不能帮我一下

string _filePath = @"?\\ MyPDF.pdf"; 
public List< String> Read()
{
var pdfReader = new PdfReader(_filePath);
var pages = new List< String>();

for(int i = 0; i< pdfReader.NumberOfPages; i ++)
{
string textFromPage = Encoding.UTF8.GetString(Encoding.Convert(Encoding.Default, Encoding.UTF8,pdfReader.GetPageContent(i + 1)));

pages.Add(GetDataConvertedData(textFromPage));
}

返回页面;
}

string GetDataConvertedData(string textFromPage)
{
var texts = textFromPage.Split(new [] {"\\ n"},StringSplitOptions.None)
.Where(text => text.Contains("Tj"))。ToList();

返回texts.Aggregate(string.Empty,(current,t)=> current +
t.TrimStart(\'(\')
.TrimEnd(\'j\')
.TrimEnd(\'T\')
.TrimEnd(\')\'));
}
[此贴子已经被作者于2021/4/6 10:16:20编辑过]

--  作者:有点蓝
--  发布时间:2021/4/6 10:22:00
--  
c#转换为VB:https://converter.telerik.com/
--  作者:hongye
--  发布时间:2021/4/6 17:20:00
--  
Dim reader As New iTextSharp.text.pdf.PdfReader("C:\\Users\\朱建斌\\Documents\\Foxtable项目\\PDF读取项目\\箱单\\jnby\\5l1611330 1-18.pdf")
Dim n As Integer = reader.NumberOfPages
Dim str As String = ""
For i As Integer = 1 To n
    Dim strategy As object = New iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy()
    Dim currentText As String = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(Reader, i, strategy)
    currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.[Default], Encoding.UTF8, Encoding.[Default].GetBytes(currentText)))
    str &= currentText
Next
str = str.replace(" ", vbcrlf)
msgbox(Str)
reader.Close()
我只能写到这里,剩下的真的不会了
不知道怎么导入了图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/4/6 17:28:00
--  
msgbox(Str)显示的什么内容?可以参考这里的方式处理获取的内容:http://www.foxtable.com/webhelp/topics/2629.htm
--  作者:hongye
--  发布时间:2021/4/6 17:35:00
--  
其他都好解决
但是没有办法匹配表格里的规格数量啊

图片点击可在新窗口打开查看此主题相关图片如下:01.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看


比如说1、2、15、28号箱都是S码140件在读取PDF时不能分出是S码的140件啊

--  作者:hongye
--  发布时间:2021/4/6 17:36:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:02.jpg
图片点击可在新窗口打开查看