必威电竞外围网站据悉iTextSharp的PDF文档操作。菜鸟电子面单使用验证。

  公司是跨越境电商,需要同各种物流打交道,需要将东西交到物流,让他俩发到世界各地。其中需要物流企业供一个运单号,来追踪货物到哪里?!

  最近当与DHL物流公司(应该是个老公司)对接,取运单号的办法是调用对方提供的API,简单说,就是咱们污染有发货地址和客户信息,要发的货等,对方回一个运单号和物流面单(就是我们淘宝快递上之面单)。过程为,还是比较顺利的,经过同雨后春笋关系,最终或促成了力量

票神软件 菜鸟电子面单使用验证

  下面要说说并未落实的职能,如果都落实了,也不用写就篇博客了。不足之处在于DHL提供的面单,没有提供要选择哪些货的面单。本来一个整机的面单,包括2片:物流企业要贴在包装上的面单(物流面单)和咱们团结一心发货部门要发作什么东西的面单(拣货面单),两有的组合在一起,发货部门才会健康的成就这个包的发货

预备条件:

  好吧,终于要引入正题了,DHL公司将东西流面单因为pdf文件流的款式返回,就是咱们可保存成Pdf文件,这样虽容易处理的大半,我们友好之拣货面单,如果为可以保存到Pdf文件,这样就是可以立即2单Pdf文件一律块打印出,这毕竟一个亏本中之解决方案。

1、我之淘宝-电子面单平台,先申请审核通过,并同网点联系充值,获得菜鸟电子面单号。只要1个店申请,其他铺面可以共享。

  首先,要将拣货数据(含图)保存至Pdf文档。技术点如下

https://waybill.wuliu.taobao.com/myServiceProviders.htm?spm=a1z3x.7846489.0.0.Ey3kJw

    1, 将DataTable导出至Pdf

2、准备好热敏打印机及菜鸟统一格式面单纸张(上联11厘米,下联7厘米),把打印机驱动装置好,
能打印测试页。

    2, DataTable中隐含图表,也使能够导出


    3, Pdf类库,字体的引入(居然要引用字体的绝对路径,想不通)

软件设置:

  下面分别教

1、打印软件晋升至最新版本,添加淘宝开放平台。

    1,
这点就是是一直开立iTextSharp中的PdfDataTable对象,直接照射即可。代码如下:

C 票据神软件提供的云栈菜鸟应用:

private static pdfText.pdf.PdfPTable CreatePdfPTableToPickupLabel(List<TradeDetailModel> listDetail, iTextSharp.text.Font font)
{
    pdfText.pdf.PdfPTable pdtTable = new pdfText.pdf.PdfPTable(5);
    pdtTable.WidthPercentage = 95;      //占宽度百分比:95%(这句很关键,作用是撑满整个面单)

    int[] colWidth = { 2, 4, 2, 2, 2 }; //设置列宽比例
    pdtTable.SetWidths(colWidth);

    //此处,先插入首行,即标题
    pdtTable.AddCell(new iTextSharp.text.Phrase("图片", font));
    pdtTable.AddCell(new iTextSharp.text.Phrase("基本信息", font));
    pdtTable.AddCell(new iTextSharp.text.Phrase("单价", font));
    pdtTable.AddCell(new iTextSharp.text.Phrase("数量", font));
    pdtTable.AddCell(new iTextSharp.text.Phrase("备注", font));

    //再插入真实拣货数据
    int rowCount = listDetail.Count;
    for (int i = 0; i < rowCount; i++)
    {
        TradeDetailModel modelDetail = listDetail[i];

        iTextSharp.text.Image image = PdfUtil.CreatePdfImage(modelDetail.ProductImageBytes);
        pdtTable.AddCell(image);
        pdtTable.AddCell(new iTextSharp.text.Phrase(modelDetail.ProductBase, font));
        pdtTable.AddCell(new iTextSharp.text.Phrase(modelDetail.Price.ToString() + Environment.NewLine + modelDetail.ProductID, font));
        pdtTable.AddCell(new iTextSharp.text.Phrase(modelDetail.Number.ToString() + Environment.NewLine + modelDetail.ProductSpec, font));
        pdtTable.AddCell(new iTextSharp.text.Phrase(modelDetail.Remark, font));
    }

    return pdtTable;
}

AppKey:23192677,(数量不限,所有卖家还可就此),能取号和打印面单和发货,订单搜索还是用原的效能(先登录,在曾售来底宝贝
那里找寻)。http://www.jianshu.com/p/c997fd51f2bc

    2,
这点而先生化作iTextSharp中Image对象才得,然后再随生成PdfDataTable中,将Image对象插入单元格(注意:图片尺寸需要定义好)。代码如下:

2、搜索订单。后面取号时见面管物流企业跟单号回写到发货管理表格里,电子面单窗口里订单发货成功后,也会见回写“发货成功”到发货管理表格里。搜了订单不要马上便进电子面单窗口,先浏览以及处理掉特殊之订单。

/// <summary>
/// 创建Pdf所需图像
/// </summary>
/// <param name="imageBytes"></param>
/// <param name="widthS"></param>
/// <param name="heightS"></param>
/// <returns></returns>
private static iTextSharp.text.Image CreatePdfImage(byte[] imageBytes, float widthS = 60f, float heightS = 60f)
{
    iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(imageBytes);

    //图片大小要求统一80x80,需根据实际图片        
    float perW = (float)Math.Round(widthS / image.Width, 2);
    float perH = (float)Math.Round(heightS / image.Height, 2);
    image.ScalePercent(perW * 100, perH * 100);

    //设置Dpi值,能够清晰些
    image.SetDpi(124, 124);

    return image;
}  

3、发货管理表格-右键菜单-打印快递电子面单,设置面单服务主店铺,点击保存。只要选同次于,平时这里并非失去装。

    3, 创建字体

4、添加物流企业跟模版。

/// <summary>
/// 创建Pdf所需字体
/// </summary>
/// <returns></returns>
public static iTextSharp.text.Font CreatePdfFont(float fontSize = 16F)
{
    //黑体
    string fontPath = @"C:\Windows\Fonts\simhei.ttf";

    iTextSharp.text.pdf.BaseFont baseFont = iTextSharp.text.pdf.BaseFont.CreateFont(fontPath,
        iTextSharp.text.pdf.BaseFont.IDENTITY_H,
        iTextSharp.text.pdf.BaseFont.NOT_EMBEDDED);
    iTextSharp.text.Font font = new iTextSharp.text.Font(baseFont, fontSize);

    return font;
}

软件默认使用我的打印组件。当点击打印或者设计时会自行下载模版和多少字典文件。如果不出现预览或者设计窗口,底部状态栏显示下载失败,请联系票据神。

    下面是调用的代码,仅供参考。注:返回的Pdf文件之绝对路径,用于后续打印

5、如果热敏打印机不是Windows系统的默认打印机,那么,每个面单模版需要各自选择一下打印机,以便后面打印时毫无再选。(设计按钮-菜单文件-页面设置-打印机)。

/// <summary>
/// 生成拣货标签pdf文件
/// </summary>
/// <param name="modelTrade"></param>
/// <param name="dhlLabelFolderName"></param>
/// <returns></returns>
public static string CreatePickupLabel(TradeModel modelTrade,string dhlLabelFolderName)
{
    //参考地址
    //https://www.cnblogs.com/yangy1989/p/5300304.html
    //http://blog.csdn.net/lideyuans/article/details/51536676 (设置图片百分比)

    //组装,待生成的pdf文件完整路径
    string logisticsNo = modelTrade.R;
    string pdfFileName = dhlLabelFolderName + logisticsNo + "_Label.pdf";

    FileStream fs = new FileStream(pdfFileName, FileMode.Create);
    pdfText.Rectangle rect = new pdfText.Rectangle(0f, 0f, 1000f, 1000f);
    pdfText.Document document = new pdfText.Document(rect, 5f, 5f, 5f, 5f);

    //创建字体
    iTextSharp.text.Font font = PdfUtil.CreatePdfFont(34F);

    pdfText.pdf.PdfWriter pdfWriter = pdfText.pdf.PdfWriter.GetInstance(document, fs);
    document.Open();

    //增加拣货单品列表
    pdfText.pdf.PdfPTable pdfpTable = PdfUtil.CreatePdfPTableToPickupLabel(modelTrade.Details, font);
    document.Add(pdfpTable);

    //增加品名备注            
    pdfText.Paragraph pgraph1 = new pdfText.Paragraph(modelTrade.ItemsDescription, font);
    document.Add(pgraph1);

    //增加:发货期限
    font.Color = pdfText.BaseColor.RED;
    pdfText.Paragraph pgraph2 = new pdfText.Paragraph(modelTrade.ShipLimitTimeText, font);
    document.Add(pgraph2);

    document.Close();
    fs.Close();

    return pdfFileName;
}

若假定使用菜鸟打印组件,可以当物流企业列表上右键,选中菜鸟组件。说明:

  

http://www.jianshu.com/p/879d31a4c7e1

  再将这2个文件,通过C#代码连续打印出来。支持连打印多个Pdf文件


//直接调用cmd命令,实现直接打印
foreach (string printFile in listPrintFile)
{
    Process proc = new Process();
    proc.StartInfo.CreateNoWindow = false;
    proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    proc.StartInfo.UseShellExecute = true;
    proc.StartInfo.FileName = printFile;
    proc.StartInfo.Verb = "print";
    proc.Start();
    proc.Close();
}

打印调试:

  

1、选择订单和挑选物流企业。网格全选或者部分选择订单的章程。

  好了,最后之末段,看看效果图吧。前2联凡DHL返回的Pdf文件,第3统一是自身本地转移的Pdf文件,合并成一个完好无损的发货面单

2、点击打单,进行预览和打印。扫描面单条码,检测是否能够辨识。推荐打印2差,看连续运动纸距离是否科学。文字方向以及纸是否匹配。如果相反,就得以叫里转180度要调整纸张。

必威电竞外围网站 1

3、点击设计,可以调整模版字体等格式,增加、删除打印项目。RM报表介绍及模版调整 
电子面单-打印机对话框 是否出示

 

4、电子 面单-增加寄件地址
自定义功能

标准以:

1,撤销“打印测试”选项,正式使用。选择订单和物流企业,取号(取得面单号和大头笔等消息,面单号和订单号绑定),打印(打印确认,打印预览,实际打印),发货。

2、消号,解除面单号和订单的绑定关系,面单号作废(不要任意消号,只有退款不发货,更换物流企业当情景才要用)。

诚如情形下消号后订单还需要再次取号。只要面单无物流流转信息(未给快递扫描单号),都可收回。

每个订单最多5次于 取号+消号操作。

单号取消后不同的快递企业发例外之回收规则。据说就是没当程序里消号,只要一个单号没有物流流转信息,快递企业一般为会回收并赶回单号数量为卖家。

回收后,卖家可应用的单号数量最终(1-3个月后)可以过来,但是单号本身是一次性的,永远不可知还原。比如单号12345,消号并回收后,卖家可以用的单号数量+1,但是12345此单号永远为不会见更叫运了。

3、包裹号概念,主要用来退换货、拆单发货同多包情况下使用。正常状态下,一个订单就针对诺一个单号。软件默认包裹号是1,就是订单对应的首先个单号。如果需要拆单等,可以以包裹号2,就是取第2只单号。哪些打印一个订单的多个包装 面单列表介绍。

4、数据网格操作-右键菜单。

右键菜单介绍:

读取新的订单-当发货管理表格里找了新的订单,但是电子面单窗口里无自行显示时,使用这个功能。

选料等待取– 自动选择处于等候取之通订单。

编辑面单备注-为当前选订单编辑备注信息,通常用于打印物品的手工简化信息。电子面单-面单备注
完善

电子面单更新收货地址功能,
电子面单-从订单读博新的收货地址
标准的省购买区与街信息查询方式

自打此时此刻排冻结-从表第1列到当前排进行冷冻,在翻看表格右边内容常常,冻结的排好维持显示。

安网格颜色:

导出EXCEL表格-将电子面单窗口里选中的订单数量,导出为EXCEL工作簿。

安网格排序-自定义多排默认排序设置。http://www.jianshu.com/p/13ed1e9521b4

抹选中面单-只有拭目以待取状态的订单才可去除。已经取号的订单,先消号后才能够去除。

自我批评已发订单-检查就发货的订单。http://www.jianshu.com/p/ff2e1668a9f2

若果为发货成功-对已经打印确认,但是非当电子面单窗口发货的订单设置其状态呢发货成功。此后默认情况下,发货成功的订单不见面显示在表中。

改换选着面单-软件保存有的订单信息,但是默认只显示最近30上之订单。如果某30龙内发货成功之订单不思量展示,可以使用这功能转移至数据库里的另外一个历史订单表内。极少要采取是意义。

缩减数据库-软件用MS ACCESS 数据库保存电子面单信息。在用一段时间后,压缩一下数据库可增进软件使用数据库的属性。

开辟帮助页面:本页面 简书 搜索 票据神软件

打开都发售宝贝-调用Windows系统默认浏览器,打开时订单的都出卖出宝贝页面。


丝下手工电子面单:

http://www.jianshu.com/p/6400117a1988


顾念了解又多电子面单的底细,可以看淘宝的电子面单文档导航:

http://open.taobao.com/doc2/detail.htm?spm=0.0.0.0.tmkKxs&treeId=1&articleId=104623&docType=1

相关文章

admin

网站地图xml地图