未找到

未发布 MailBee.NET Objects退回邮件教程(二):POP3部分
by Harriet666 keys 分享 1503567760428
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,
简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。

MailBee.NET Objects介绍和试用点击查看>>>
 
 
本文主要介绍了SMTP服务器退回邮件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
在上期的SMTP部分中,我们将退回的电子邮件发送到指定的单个电子邮件地址。
 
每封退回的电子邮件都包含失败的电子邮件地址(以及其他信息)。这个失败的地址是我们想知道的。这个任务看起来很简单 - 你需要做的是扫描退回的
邮件以确定地址的典型字段。但是有一个隐藏的危险:每个邮件服务器都有自己的邮件退回格式。虽然它们几乎具有相同的“From”和“主题”字段,但是退回地址可以在邮件的任何位置。MailEnable服务器的典型退回邮件如下所示:
From: POSTMASTER@domain.com
To: jdoe@domain.com
Subject: Message Delivery Failure

MailEnable: Message Delivery Failure.

The following recipient(s) could not be reached: 

Recipient: [SMTP: bill@domain.com] Reason: The message could not be delivered because the domain name (domain.com) does not appear 

to be registered.

函数GetInvalidEmailAddressME()检查邮件是否被退回,并从退回的邮件中提取失败的地址。由于退回邮件格式不同,此功能仅对MailEnable服务器有效。例如,如果你正在使用Communigate Pro服务器,则退回消息如下所示:
From: MAILER-DAEMON@domain.local
To: jdoe@localhost Subject:
Undeliverable mail:

Failed to deliver to ''
 
正如你所看到的,这个退回的邮件与前一个几乎相同。使用哪个服务器并不重要,退回信息总是有From,To和Subject字段,退回信息在其正文中有失败的地址。函数GetInvalidEmailAddressCP()与前一个函数几乎相同; 区别仅在于检查邮件字段并搜索失败的地址。支持尽可能多的退回电子邮件格式至关重要。这就是为什么你需要修改GetInvalidEmailAddress()函数,以适应服务器使用的退回电子邮件格式。
 
注意:在某些情况下,你可能需要扫描退回的电子邮件以获取其他信息。如果由于暂时的问题,退回的邮件到达,则不要删除电子邮件地址:邮箱超过配
额,邮件服务器关闭等。退回邮件可以分为两种类型:硬邮件和软邮件。如果是不存在的帐户或域,则会发生硬性退回。其他故障,如完整的邮箱或暂时
不可用的域,则是软性退回。你可以为数据库中的每个地址进行计算。也许下一次尝试发送邮件到具有一些软性退回的地址时将成功。
 
代码示例:
在此示例中,我们从指定的帐户中检索退回的电子邮件,然后从每个退回的电子邮件中提取失败的电子邮件地址。失败的地址传递给RemoveEmailFromDatabase子程序,该子程序必须从数据库中删除失败的地址。应用程序还会从服务器中删除退回的电子邮件,以避免下次处理。
C#:
// Create POP3 object
Pop3 pop = new Pop3();

// Enable logging to file
pop.Log.Enabled = true;
pop.Log.Filename = @"C:\log.txt";
pop.Log.Clear();

// Connect to POP3 server
pop.Connect("mail.domain.com");
pop.Login("bounce", "secret");

// Download headers and bodies of all messages.
MailMessageCollection msgs = pop.DownloadMessageHeaders(1, -1, -1);
                        
// Loop through all messages in the mailbox
foreach (MailMessage msg in msgs)
{
        string strLine = msg.BodyPlainText;
        Console.WriteLine("From: " + msg.From.Email);
                                
        // Get failed email address
        string str_invalid_email =  GetInvalidEmailAddressME(msg);

        // If str_invalid_email is non-empty then failed email 
        // address was found
        if (str_invalid_email.Length > 0)
        {
                // Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email);

                // Display invalid adress
                Console.WriteLine("Invalid email: " + str_invalid_email);                

                // Delete bounced email from server to avoid
                // processing it next time
                pop.DeleteMessage(msg.IndexOnServer);
        }
}

// Disconnect from POP3 server
pop.Disconnect();

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for MailEnable servers
static string  GetInvalidEmailAddressME(MailMessage msg)
{
        string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Delivery Failure") == -1)
{ 
                return "";
        }
        if (msg.From.ToString().IndexOf("POSTMASTER") == -1)
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("SMTP:");

        // Check if bounced message report contains "Recipient:" field
        if (i_start == -1)
        {
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// The function checks whether the message is bounced and extracts 
// failed address 
// from bounced message. Valid only for Communigate Pro servers
static string  GetInvalidEmailAddressCP(MailMessage msg)
{
string str_invalid_email = msg.BodyPlainText;

        // Check if this is a bounced message report
        if (msg.Subject.IndexOf("Undeliverable mail") == -1) 
        {
                return "";
        }
        if (msg.From.ToString().IndexOf("MAILER-DAEMON") == -1) 
        {
                return "";
        }

        // Now we're sure this is a bounced message report
        int i_start;
        i_start = str_invalid_email.IndexOf("to '<");

        // Check if bounced message report contains 
        // "Failed to deliver to " field
        if (i_start == -1)
        { 
                return "";
        }
                        
        // Get failed address
        i_start += 5;
        i_end = str_invalid_email.IndexOf("]",i_start);
        str_invalid_email.Substring(i_start, i_end);
                        
        return str_invalid_email;
}

// This function must remove (or disable) specified
// email address from mailing list
static void RemoveEmailFromDatabase(string str_invalid_email)
{
// TODO: Add your code here                        
}
 
VB.NET:
Dim pop As New Pop3

' Enable logging to file
pop.Log.Enabled = True
pop.Log.Filename = "C:\log.txt"
pop.Log.Clear()

' Connect to POP3 server
pop.Connect("mail.domain.com")
pop.Login("jdoe", "secret")

' Download headers and bodies for all messages.
Dim msgs As MailMessageCollection = pop.DownloadMessageHeaders(1, -1, -1)

' Loop through all messages in the mailbox
Dim msg As MailMessage
For Each msg In msgs
        Dim strLine As String = msg.BodyPlainText
        Console.WriteLine("From: " + msg.From.Email)

        ' Get failed email address
        Dim str_invalid_email As String = GetInvalidEmailAddressME(msg)

        ' If str_invalid_email is non-empty then failed email 
        ' address was found
        If str_invalid_email.Length > 0 Then
                'Remove failed email from database
                RemoveEmailFromDatabase(str_invalid_email)

                ' Display invalid address
                Console.WriteLine("Invalid email: " & str_invalid_email)

                ' Delete bounced email from server to avoid
                ' processing it next time
                pop.DeleteMessage(msg.IndexOnServer)
        End If
Next
Console.ReadLine()

' Disconnect from POP3 server
pop.Disconnect()

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for MailEnable servers
Function GetInvalidEmailAddressME(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Delivery Failure") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("POSTMASTER") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("SMTP:")

        ' Check if bounced message report contains "Recipient:" field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' The function checks whether the message is bounced and extracts 
' failed address 
' from bounced message. Valid only for Communigate Pro servers
Function GetInvalidEmailAddressCP(ByVal msg As MailMessage) As String
        Dim str_invalid_email As String = msg.BodyPlainText

        ' Check if this is a bounced message report
        If msg.Subject.IndexOf("Undeliverable mail") = -1 Then
                Return ""
        End If
        If msg.From.ToString().IndexOf("MAILER-DAEMON") = -1 Then
                Return ""
        End If

        ' Now we're sure this is a bounced message report
        Dim i_start As Integer, i_end As Integer
        i_start = str_invalid_email.IndexOf("to '<")

        ' Check if bounced message report contains 
        ' "Failed to deliver to " field
        If i_start = -1 Then
                Return ""
        End If

        ' Get failed address
        i_start += 5
        i_end = str_invalid_email.IndexOf("]", i_start)
        str_invalid_email.Substring(i_start, i_end)

        Return str_invalid_email
End Function

' This function must remove (or disable) specified
' email address from mailing list
Sub RemoveEmailFromDatabase(ByVal str_invalid_email As String)
        ' TODO: Add your code here                        
End Sub
未发布 MailBee.NET Objects接收电子邮件(POP3)教程四:访问电子邮件附件
by Harriet666 keys 分享 1501232156519
MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
 
MailBee.NET Objects介绍和试用点击查看>>>
 
本文主要介绍了如何访问电子邮件附件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!

 
所有邮件附件都存储在MailMessage.Attachments集合中。该集合还列出了邮件中包含的嵌入图像和其他文件。
集合中附件的索引为零。例如,下面的代码打印第一个附件的名称:
C#
Console.WriteLine("Attachment name is " + msg.Attachments[0].Name);
VB.NET
Console.WriteLine("Attachment name is " + msg.Attachments(0).Name)
要访问附件,您需要从服务器下载整个邮件(不仅仅是标题)。
你可以检查邮件是否附件如下:
C#
Pop3 pop = new Pop3();
// Download entire message
MailMessage msg = pop.DownloadEntireMessage(1);
if (msg.HasAttachments)
{
        // The message has at least one attachment
}

VB.NET
Dim pop As New Pop3()
' Download entire message
Dim msg As MailMessage =  pop.DownloadEntireMessage(1) 
if (msg.HasAttachments) Then
        ' The message has at least one attachment
End If
在某些情况下,即使只下载了邮件开头部分,也可以使用MailMessage.HasAttachments属性。
未发布 图像注释插件VintaSoftAnnotation.NET Plug-in更新至v8.6丨75折优惠
by Harriet666 keys 分享 1519808496858
VintaSoftAnnotation.NET Plug-in是VintaSoft Imaging .NET SDK图像插件,可支持TIFF、PNG、JPEG格式图像以及PDF文档的批注。目前VintaSoftAnnotation.NET Plug-in在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
 
 
VintaSoftAnnotation.NET Plug-in v8.6更新内容:

WinForms注释图像查看器(AnnotationViewer类):

  • 支持多页面查看模式。
  • 增加了在多页图像查看模式下将注释从一个页面移动到另一个页面的功能。
WinForms注释可视化工具(AnnotationTool类):
  • 支持多页面查看模式。
  • 增加了一些小的改进。
WPF注释图像查看器(WpfAnnotationViewer类):
  • 支持多页面查看模式。
  • 增加了在多页图像查看模式下将注释从一个页面移动到另一个页面的功能。
WPF注释可视化工具(WpfAnnotationTool类):
  • 增加了对多页面查看模式的支持。
  • 增加了一些小的改进。
注释:
  • 支持以下注释的云和三角形样式的:矩形,椭圆,文本,自由文本,高亮。
  • 添加了使用StampAnnotation.TextAlign属性为Stamp注释指定文本对齐的功能。
演示应用程序:
  • WinForms和WPF的AnnotationDemo应用程序:
    · 增加了在多页面模式下注释图像的功能。
    · 增加了一些小改进。
    · 修复了一些小错误。
  • ASP.NET WebForms和ASP.NET MVC的AnnotationDemo应用程序:
    · 添加了从字体列表中为文本标注选择字体的功能。
    · 增加了一些小改进。
未发布 【FAQ合集】TWAIN扫描识别工具Dynamic Web TWAIN的特性问题
by Harriet666 keys 分享 1510112496135
Dynamic Web TWAIN中文介绍免费下载资源教程示例DEMO
 
慧都十四周年狂欢开启,Dynamic Web TWAIN终极让利7折特惠
限时一个月,马上咨询>>>
 

1. Dynamic Web TWAIN可以使用哪些操作系统?

Windows XP、Vista、7/8/10等
  • IE 6-9:ActiveX
  • IE 10-11:HTML5/ActiveX
  • Edge:HTML5
  • Chrome/Firefox 26-:NPAPI Plug-in (obsolete)
  • Chrome/Firefox 27+:HTML5
Mac OS X 10.6及更高版本
  • Chrome/Firefox 26-、Safari 6-:NPAPI Plug-in (obsolete)
  • Chrome/Firefox 27+、Safari 7+:HTML5
Ubuntu 10+,Debian 8和Fedora 19+
  • Chrome/Firefox 27+:HTML5

2. Dynamic Web TWAIN是否支持Chrome或FireFox?

支持。Dynamic Web TWAIN插件版本可与旧版NPAPI的Chrome和Firefox版本兼容。Dynamic Web TWAIN 10引入了HTML5版本,可在Windows上的Chrome和Firefox V27 +上启用TWAIN扫描。

3. Dynamic Web TWAIN是否支持数据库?

支持。Dynamic Web TWAIN能够将图像文件保存到文件系统和数据库中。

4. Dynamic Web TWAIN是否支持SSL?

支持。有关如何使用SSL的信息,请参阅该文

5.我可以使用FTP进行密码上传和下载吗?

是的,您可以使用FTPUserName属性和FTPPassword属性。

6. Dynamic Web TWAIN是否能够在类库(DLL)项目中运行?

不能。

7. Dynamic Web TWAIN是否支持条形码阅读器或OCR?

您可以使用Dynamic Web TWAIN与Dynamsoft Barcode Reader的条形码读取。
关于OCR,我们为您提供2个选项:
  1. 服务器端OCR解决方案:在线演示>
  2. 客户端OCR解决方案:在线演示>

8.我可以扫描大量的文件吗?

随着IfAllowLocalCache启用,您能够扫描数千张图片,因为额外的图像将存在磁盘上。数据将被加密并存储为“C:\Documents and Settings\{User Name}\Application Data\Dynamsoft\cache”或“C:\WINDOWS\SysWOW64 {or system32}\Dynamsoft\DynamicWebTwain\ForChrome\cache”。扫描应用程序关闭时,缓存的数据将自动从磁盘中删除。

2017慧都十四周年狂欢搞事情!砸金蛋100%抽现金红包、满额豪送iPhone X、iPhone 8、DevExpress汉化免费送、团队升级培训套包劲省10万元......更多惊喜等您来探索!

未发布 Dynamic Web TWAIN新版预告:v13.0版本中的全新设计
by Harriet666 keys 分享 1494386157218
在过去的14年中,Dynamsoft一直在努力创新和开发Dynamic Web TWAIN SDK,并在每年都有一次重大升级。今年,v13.0版本正在路上。现在让我们来看看这次新版本将带来的好处。

v13.0版本中的新设计


在v13.0版本中,SDK的结构有了新的设计。在设计新版本时,Dynamsoft主要考虑到以下目标:
  • 应该有一个核心服务作为所有模块的中心。

  • 该服务应该设计成:

              a、它很长一段时间内只需升级一次
              b、采用自动升级的方式
  • 独立模块应能够通过核心服务相互通信

  • 独立模块应能够通过核心服务共享数据

  • 使用哪些模块应由应用程序中使用的JavaScript文件决定

  • 所有模块都应自动升级,用户无需额外的操作

  • 每个模块都能够处理自身的JavaScript请求

下图显示了在v13.0版本中Dynamic Web TWAIN的新设计:

为什么会出现这个新设计?

在过去我们收到过很多投诉,例如:
  1. 只允许拥有一个版本,换句话说,你不能同时安装两个版本。
  2. 随着每次新版本的发布,客户会发现从旧版本升级到新版本的过程很困难。尽管Dynamsoft员工一直努力让这一过程尽可能的简单,但许多客户仍然觉得升级困难。关键的原因是在使用该产品时每个桌面上都需要重新安装该服务。
  3. SDK已经非常丰富了,包括不同的模块如条形码读取器、OCR模块,网络摄像头模块等。然而,SDK的旧结构使得这些模块只能以TWAIN模块为中心,导致结果是:
         a、难以独立使用模块。
         b、由于依赖TWAIN模块,因此无法单独升级一个或两个模块。

新设计的出现可以解决三个问题:
  1. 新版本可以与旧版本一起安装、实现共存。
  2. 从这个版本开始,Dynamsoft Service将成为中心。它只处理最基本和最核心的功能,并保持稳定。因此,安装之后就可以很少或无需再升级。
  3. 所有模块的安装和未来的升级将变得“安静”。换句话说,它们不再需要执行任何安装程序。相反,一旦文件在服务器上更新(新模块以及新的JavaScript文件),Service将以静默的方式下载并安装新模块。
  4. 所有模块都可以独立使用和升级了。
Dynamic Web TWAIN v13.0预计将于2017年6月发布,敬请期待!
未发布 矢量图形引擎库VectorDraw Developer Framework发布v7.7014.0.5
by Harriet666 keys 分享 1517214900113
VectorDraw Developer Framework(VDF)是一款构建2D、3D图形并用于应用程序可视化的矢量图形引擎库。有了VDF提供的功能,您可以轻松地创建、编辑、管理、输出、输入和打印2D和3D图形文件。该库还支持许多矢量和栅格输入和输出格式,包括本地PDF和SVG导出。
 
VectorDraw Developer Framework试用版下载>>>
 
VectorDraw Developer Framework(VDF)v7.7014.0.5更新内容:

WebJS

新增需求(7.7014.0.1)
  • 70001215 MergeDocument方法支持使用mergeFlags  
新增需求(7.7014.0.5)        
  • 70001249 处理AddBlockFromFile加载
漏洞(7.7014.0.1)
  • 70001204 线路对象捕捉无法运作
  • 70001206 导出到vds脚本时出现异常
  • 70001210 WebGl渲染中的实体影线问题  
漏洞(7.7014.0.5)
  • 70001250 vdConst CloneEntity出现意外
 

Converter

新增需求(7.7014.0.1)
  • 70001217 DGN中unsuported对象的类型
漏洞(7.7014.0.1)
  • 70001212 Textstyle未使用正确的TTF字体导入
漏洞(7.7014.0.5)
  • 70001248 折线的宽度问题
   

Engine

新增需求(7.7014.0.3)
  • 70001231 改进触摸控制
  • 70001234 使用Wrapper检查鼠标是否位于ViewCube内部
  • 70001239 是否可以在OnFilterOsnap事件中获取交集对象
  • 70001241 用webGl 3d模式绘制线条和文本
漏洞(7.7014.0.3)
  • 70001235 版本2000中的DXF导出问题
  • 70001236 在Wire2D模式下,线路抗锯齿功能无法正常工作
  • 70001237 鼠标没有正确渲染
  • 70001238 vdLayout调整大小将引发异常
  • 70001240 AlignToView对象在PDF输出中缩放
  • 70001242 导出多边形为dwg dxf文件格式时出错
漏洞(7.7014.0.4)
  • 70001243 不完整的纸张模型刷新
  • 70001245 当VectorDrawBaseControl WndProc被调用时,出现间歇性崩溃
未发布 如何选择你的移动APP KPIs(关键绩效指标)
by Harriet666 keys 分享 1487231962156
移动APP市场正以惊人的速度发展。越来越多的人在户外时会选择移动端来访问网络。为了取得更大的竞争力和获得更多用户的注意力,移动端APP开发者还有许多应该做的。近年来应用商店非常受欢迎,它可以为每个使用手机的人提供适合他们的应用。面对这种情况,移动端APP开发者如何衡量自己的应用是否成功呢?在移动应用发展过程中,下载量已经不是衡量成功的唯一标准了。
你需要更精准的关键绩效指标(KPIs)来评判你的APP在市场中的表现是好是坏。需要特别注意的是每个APP是不同的,因此你应该根据自身APP所属的类别来选择KPIS。同样的,所选的指标也必须符合你的商业目标。下面就教大家如何选择你的移动APP KPIs。
查看完整方法>>>>>


未发布 屏幕记录机BB FlashBack v5.26.0发布丨附下载
by Harriet666 keys 分享 1499138524647
BB FlashBack是一种屏幕记录器,能快速容易地创建视频。有详尽的软件阐述、屏幕演示、介绍、指南以及练习。目前BB FlashBack在线订购享75折优惠活动正在进行中,欢迎您下载、购买进行运用!
 
【BB FlashBack v5.26最新版下载>>>】

v5.26.0更新内容:

  • 修复:首次显示网络摄像机预览窗口时,可能会错误地显示某些网络摄像头。
  • 修复:WMV导入时可能会显示“division by zero”的错误。
  • 修复:当视频包含暂停时导出到Quicktime的问题。
  • 修复:快速批量导出器应该只导出最大的WMV格式。
  • 修复:如果选择了未显示的帧,则无法隐藏摄像头。
  • 简化MP4导出的缩放选项。
  • 修复:批处理导出一些FBR文件时崩溃的问题。
  • 将最大摄像头FPS增加到30。
  • 修复:相同命名的声源造成的问题。
  • 针对8Gb及以上的电脑,当录音停止时,现在默认打开。
  • 修复:使用文件大小限制时,记录器可能会尝试保存为临时文件夹。
  • 修复:使用“打开”功能时,播放器不会默认使用以前的文件夹。

试用、下载、了解更多产品信息请点击"咨询在线客服"   


未发布 客户端开发包OPC Data Client更新至v5.51,支持Visual Studio 2017
by Harriet666 keys 分享 1516698671953
制造自动化软件的领先供应商,Software Toolbox®宣布发布OPC Data Client的2017.2(5.51)版本。2017.2(5.51)版本中的新增功能包括支持Visual Studio 2017,支持安全策略Basic256Sha256,改进的HTTPS支持以及改进的连接浏览器!
 
OPC Data Client新版本下载>>>
 
新版本更新重点:
  • 支持安全策略Basic256Sha256
  • 支持Visual Studio 2017
  • 改进HTTPS支持
 
Targeting
  • 操作系统:不再支持带有SP1的Microsoft Windows Server 2008 R2(x64)。
  • 操作系统:不再支持Microsoft Windows 10(x86或x64)2015年11月更新(1511)。
  • 开发工具:Visual Studio 2017添加到主要开发工具列表中。
 
技术
  • 该产品现在主要使用Visual Studio 2017进行开发。
 
安装和卸载
  • 设置组件“开发库(COM)”的说明已更改为“类型库(COM)”,其名称已从“devlibs”更改为“typelibs ”。
  • 与OPC UA应用程序及其行为相关的参数已从UAClientEngineParameters移至新类型UAClientApplicationParameters,并且UAClientEngineParameters现在具有包含这些参数的ApplicationParameters属性。这允许更多的逻辑组织参数。受影响的属性是AllowClientCertificatePrompt,ApplicationCertificateStore,ApplicationCertificateSubject(obsolete),ApplicationName,ApplicationUriString和ProductUriString。             
 
用户界面
  • 在浏览对话框和控件时,OPC UA端点的“节点信息”框现在包含用户标识的信息。如果用户身份不是“匿名”,则文本以粗体显示。
  • OPC-UA服务器实例证书未验证通知现在包含“查看证书”按钮,允许用户显示一个对话框,其中包含证书及其关联证书链的属性。
 
工具
  • 连接浏览器
  • 新增文件 - > 重新启动命令(重新启动应用程序)。    
  • “参数编辑器”窗口现在具有“重置”按钮,允许用户快速将所选点类型的参数恢复为其默认值。
 
文档
  • “用户指南与参考”主要提供了COM组件的分离参考文档。
  • COM组件的参考文档现在只能在线(不包含在Visual Studio集成帮助中)。
 
删除
  • 代码合同程序集已被删除。
更多完整更新内容,请参考更新列表。
未发布 VintaSoft PDF插件VintaSoftPDF.NET Plug-in更新至v5.4,创建PDF可视化工具
by Harriet666 keys 分享 1491816822873
VintaSoftPDF.NET Plug-in是一个完全的.NET组件,可用于查看,创建以及编辑PDF文档。该程序库还可用于显示,渲染,创建,转化,注释,打印,保存,修改和编辑PDF文档页面。
【最新VintaSoftPDF.NET Plug-in点击下载】

VintaSoftPDF.NET Plug-in v5.4更新内容:


与PDF文档的视觉交互:
  • 创建了一个可视化工具 - PdfAnnotationTool,允许与PDF注释和PDF文档的交互式表单区域进行交互。可视化工具:
    • 在查看模式下,可以查看PDF注释并填写PDF交互式表单的区域。
    • 在标记模式下,允许编辑PDF标记注释并填写PDF交互式表单的区域。
    • 在编辑模式下允许:
      • 调整大小并重新定位PDF注释和交互式区域。
      • 修改PDF评论和交互式区域的外观。
      • 创建/删除/复制/粘贴PDF注释和交互式区域。
      • 立即选择几个PDF评论和交互式区域。
    • 允许将操作分配给PDF注释和交互式字段的触发器。
    • 允许在字段上方显示交互式区域的名称。
    • 允许突出显示可以填写的交互式区域。
    • 仅允许突出显示必须填写的交互式区域。
    • 允许在编辑模式下突出显示PDF注释和交互式区域。
    • 支持执行以下操作:JavaScript、隐藏注释、Goto、启动、命名、URI、导入表单数据、重置表单、提交表单。
    • 允许配置互动区域的视觉外观:颜色、透明度、大小、区域大小。
  • 增加了使用JavaScript注释器和支持执行JavaScript操作的能力。
  • 支持以下可视化工具用户界面(复制、剪切、粘贴、删除、全选)的常见操作:PdfAnnotationTool、PdfContentEditorTool、PdfTextSelectionTool、PdfImageExtractionTool、PdfRemoveContentool。
使用PDF注释:
  • 创建通用PDF注释的外观生成器。
使用PDF交互式区域:
  • 增加了从XFDF格式导入交互式表单的值的功能。
  • 增加了将交互式表单的值导出为XFDF格式的功能。
打印PDF文件:
  • 在WinForms中打印PDF文档时,增加了整体打印性能并减少了内存使用,这是因为新的PdfPrintDocument类是以矢量形
    式来打印PDF文档。
使用PDF文档的字体:
  • 创建通用PDF注释的外观生成器。
  • 使用PDF交互式区域:
  • 增加了从XFDF格式导入交互式表单的值的功能。
  • 增加了将交互式表单的值导出为XFDF格式的功能。
  • 打印PDF文件:
  • 在WinForms中打印PDF文档时,增加了整体打印性能并减少了内存使用,这是因为新的PdfPrintDocument类是以矢量形
    式来打印PDF文档。
  • 使用PDF文档的字体:
  • 增加了对可变代码长度的复合字体的支持。
  • 增加了对复合字体的预定义CMap编码的支持。
  • 增加了对TrueType字体集(.ttc文件)的支持。
  • 增加了创建基于Type1程序的字体子集的功能。
  • 使用改进和简化的字体搜索和替换算法创建了一个新版本的FontProgramsController-s。
  • 增加了将程序替换为14种标准字体的功能。
  • 增加了打包Type1和Type3字体的功能。
  • 增加了基于TTC程序嵌入和打包字体的功能。
  • 增加了对基于Type1和CFF程序的Type3字体模糊文字的功能。
  • 增加了查看进度并获取有关字体混淆、字体打包、内容删除的详细信息的功能。
  • 修复了Type1字体解析器中的一些错误。
  • 修复CFF字体解析器中的一些错误。
渲染PDF文档:
  • 增加了垂直对齐文本的渲染支持。
  • 增加了使用PdfContentRenderer类来控制PDF注释绘图的功能。
  • 支持使用PDF文档的渲染设置对PDF注释进行扩展管理。
使用PDF文档的ow-level tree:
  • 增加了查看和更改PDF文档基础对象树的功能。
  • 增加了将用户数据存储在PDF文档的任何节点中的功能。
演示应用:
  • PdfEditorDemo已经完全修改:
    • 添加了独立面板:
      • 文本选择、文本提取和文本搜索
      • 填写PDF文档的交互式表单区域
      • 注释PDF文件
      • 创建PDF文档的交互式表单区域
      • 从PDF页面提取图像
      • 将图形添加到PDF页面
      • 从PDF页面中删除内容。
    • 增加了注释PDF文档的功能。
    • 增加了填写PDF文档的交互式区域的功能。
    • 增加了使用交互式表单创建PDF文档的功能。
    • 增加了以XFDF格式导出/导入PDF交互式表单的功能。
    • 增加了将交互式表单域导出为PDF格式的功能。
    • 增加了将任何动作分配给PDF注释和交互式区域的任何触发器的功能。
    • 增加了为PDF事件处理程序分配任何操作的功能。
    • 增加了触发所有支持的PDF操作(包括JavaScript操作)的功能。
    • 增加了在激活时反转(超级)链接区域的功能。也可以配置自定义效果。
    • 增加了测试和调试JavaScript代码的功能。
    • 增加了在PDF页面上刻录矢量PDF注释的功能。
  • PdfReaderDemo已经完全修改:
    • 增加了独立面板:
      • 文本选择、文本提取和文本搜索
      • 填写PDF文档的交互式表单域
      • 从PDF页面提取图像。
    • 增加了填写PDF文档的交互式区域的功能。
  • 增加了在PdfStructureEditorDemo中查看PDF文档的low-level tree的功能。
  • 增加了一个演示了如何在PdfReportGeneratorDemo中创建和执行PDF操作的示例。
进行了许多主要和次要的修复。

 近期热门 - 点击最多
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Node.js 打印vite react+go项目目录树
  3. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  4. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  5. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  6. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  7. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  8. React Native为http网络请求添加timeout超时异常处理: 用XMLHttpRequest替换fetch发送的区别
  9. React Native使用fetch发送http登陆验证请求失败:无法读取set-cookie并显示network request failed
  10. 克服Redux的缺点在React/Native中使用消息队列,pubsub-js更加简洁的组件间通信和状态传递方法

  全端社区 - 最新回复
  1. python基于asyncio实现 Redis 的异步操作哈希数据写入 / 读取、发布订阅消息中间件
  2. Angular入门:用Signals状态管理和Bootstrap基础样式实现的用户登录注册实例教程
  3. 用Gitea搭建免费Git服务器自定义Actions配置CI/CD自动化部署和测试流水线
  4. FastAPI+SQLModel+PostgreSQL+React+Vite全栈项目文件结构说明环境搭建与初始化指南
  5. Node.js 打印vite react+go项目目录树
  6. valtio基于Proxy代理比redux\zustand更简洁的react状态管理库
  7. Windows与Mac通过git ssh和rsync实现文件共享互传
  8. Windows与Mac通过git ssh和scp实现文件共享互传
  9. React结合vite使用vue3,在纯typescript的react hooks中使用vue
  10. 使用PubSub-JS时ReactNative在后台运行一段时间唤醒后,组件无法scribe到publish的事件,typescript实现一个事件订阅发布组件

  开源的 OurJS
OurJS开源博客已经迁移到 OnceOA 平台。

  关注我们
扫一扫即可关注我们:
OnceJS

OnceOA