⑴ 如何用.NET将DWG文件打印为pdf
pdf是扫描件,这个需要打印之后,扫描就是PDF文件了
⑵ c#怎么实现pdf手写签名
你可以试一下 Grapecity Documents For PDF。这是一款.NET PDF 文档API,适用于所有 .NET Standard 2.0 及以上标准的平台,以编码的方式,无需 Adobe Acrobat 组件 ,超快批量处理 PDF 文件,满足关于 PDF 文档的一切需求。网页链接
GrapeCity Documents for PDF 使用基于图像的数字化签名(使用 X509 证书),用以实现文档安全性和工作流管理。
除此之外,Grapecity Documents For PDF 最大的特色总结如下:
产品架构灵活、轻量
轻量级产品架构可节省系统处理 PDF 时占用的内存和时间。与同类产品相比,GrapeCity Documents for PDF 可用于生成更高质量的 PDF 文档。
完全兼容 Adobe PDF
GrapeCity Documents for PDF 符合 Adobe PDF 1.7 规范,可在不影响 PDF 文档功能和设计的情况下,完成创建、编辑、存储、合并、拆分等多种功能。
全文本支持
GrapeCity Documents for PDF 支持 PDF 文档的所有文本和段落格式,同时还支持特殊字符、多种语言(包括中文)、RTL 格式、垂直拆分和旋转文本。
100 种以上的 PDF 功能
使用 GrapeCity Documents for PDF,您可以随意添加、删除、拷贝、移动、保护、更改页面大小、方向、转换为线性化 PDF 以及压缩 PDF 文件。
全面支持 .NET 平台
GrapeCity Documents for PDF 支持所有 .NET 平台,并允许您在应用程序中与 .NET Core 2.0 +、.NET Framework、Mono、Xamarin.iOS 和 Xamarin.Android 一起使用。
将应用程序部署到云端
GrapeCity Documents 可用于云应用程序开发,使用 NuGet 和 GrapeCity Documents for PDF,您可直接部署到网络云、阿里云、腾讯云、Azure 和 AWS 中。
简单来说,使用 GrapeCity Documents for PDF 可以轻松实现:
可生成线性化 PDF 文档,通过 Internet 更快地进行查看
用代码生成、加载、编辑、合并/拆分大型 PDF 文档
支持多种语言(如中文)、特殊字符以及 RTL 格式
支持 100 种以上的 PDF 功能网页链接
⑶ pdfapi如何涂色块
pdf涂色的方法
1:首先在电脑上下载并安装AdobeReader软件,安装之后打开此软件在左上角文件中打开需要填充颜色的平面图;
2:选好平面图后在主界面右上角点击注释菜单;
3:进入注释菜单后根据所填充平面图的特征,选择图画标记;
4:用选择的图画标记工具确定需要填充颜色的区域;
5:之后用鼠标点击确定的填充区域边框,点击鼠标右键,选择下拉菜单属性,在打开的菜单属性中选择填充颜色,点击确定,颜色填充结束。
⑷ .net如何将页面生成pdf
using System;
using System.IO;
using System.Text;
using System.Collections;
namespace PDFGenerator
{
public class PDFGenerator
{
static float pageWidth = 594.0f;
static float pageDepth = 828.0f;
static float pageMargin = 30.0f;
static float fontSize = 20.0f;
static float leadSize = 10.0f;
static StreamWriter pPDF=new StreamWriter("E:\\myPDF.pdf");
static MemoryStream mPDF= new MemoryStream();
static void ConvertToByteAndAddtoStream(string strMsg)
{
Byte[] buffer=null;
buffer=ASCIIEncoding.ASCII.GetBytes(strMsg);
mPDF.Write(buffer,0,buffer.Length);
buffer=null;
}
static string xRefFormatting(long xValue)
{
string strMsg =xValue.ToString();
int iLen=strMsg.Length;
if (iLen<10)
{
StringBuilder s=new StringBuilder();
int i=10-iLen;
s.Append('0',i);
strMsg=s.ToString() + strMsg;
}
return strMsg;
}
static void Main(string[] args)
{
ArrayList xRefs=new ArrayList();
//Byte[] buffer=null;
float yPos =0f;
long streamStart=0;
long streamEnd=0;
long streamLen =0;
string strPDFMessage=null;
//PDF文档头信息
strPDFMessage="%PDF-1.1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="1 0 obj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="<< /Length 2 0 R >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="stream\n";
ConvertToByteAndAddtoStream(strPDFMessage);
////////PDF文档描述
streamStart=mPDF.Length;
//字体
strPDFMessage="BT\n/F0 " + fontSize +" Tf\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档实体高度
yPos = pageDepth - pageMargin;
strPDFMessage=pageMargin + " " + yPos +" Td\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= leadSize+" TL\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
//实体内容
strPDFMessage= "(http://www.wenhui.org)Tj\n" ;
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage= "ET\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamEnd=mPDF.Length;
streamLen=streamEnd-streamStart;
strPDFMessage= "endstream\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
//PDF文档的版本信息
xRefs.Add(mPDF.Length);
strPDFMessage="2 0 obj\n"+ streamLen + "\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="3 0 obj\n<</Type/Page/Parent 4 0 R/Contents 1 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="4 0 obj\n<</Type /Pages /Count 1\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Kids[\n3 0 R\n]\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/Resources<</ProcSet[/PDF/Text]/Font<</F0 5 0 R>> >>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="/MediaBox [ 0 0 "+ pageWidth + " " + pageDepth + " ]\n>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="5 0 obj\n<</Type/Font/Subtype/Type1/BaseFont/Courier/Encoding/WinAnsiEncoding>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
xRefs.Add(mPDF.Length);
strPDFMessage="6 0 obj\n<</Type/Catalog/Pages 4 0 R>>\nendobj\n";
ConvertToByteAndAddtoStream(strPDFMessage);
streamStart=mPDF.Length;
strPDFMessage="xref\n0 7\n0000000000 65535 f \n";
for(int i=0;i<xRefs.Count;i++)
{
strPDFMessage+=xRefFormatting((long) xRefs[i])+" 00000 n \n";
}
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="trailer\n<<\n/Size "+ (xRefs.Count+1)+"\n/Root 6 0 R\n>>\n";
ConvertToByteAndAddtoStream(strPDFMessage);
strPDFMessage="startxref\n" + streamStart+"\n%%EOF\n";
ConvertToByteAndAddtoStream(strPDFMessage);
mPDF.WriteTo(pPDF.BaseStream);
mPDF.Close();
pPDF.Close();
}
}
另外:C#中生成PDF文件的方法挺多,可以使用iTextSharp控件,还有aspose的控件也可以。这些控件的功能都很强大,所以控件的大小也会很大
⑸ .net打印pdf文件
方法一(web):window.print()
print()方法是浏览器打印功能的一种程序调用。print方法用于打印当前窗口的内容。
打印当前页:
function printPage(){
window.print();
}
打印局部页面:
前端页面:<iframe style="width:100%;height:100%;" id="fileId" src="文件路径">
</iframe>
<input type="button" name="print" id="print" value="打印" />
js:$("#print").click(function () {
var iframe = document.getElementById("fileId");
iframe.contentWindow.print();
});
方法二:调用系统API(得保证本地装有相关的软件)
PrintDocument pd = new PrintDocument();
pd.PrinterSettings.PrinterName = "Microsoft Print to PDF";
Process p = new Process
{
StartInfo = new ProcessStartInfo
{
CreateNoWindow = false,
WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = true,
FileName = filePath,//文件路径
Verb = "print",
Arguments = @"/p /h \" + filePath + "\"\"" + pd.PrinterSettings.PrinterName + "\""
}
};
p.Start();
p.WaitForExit();
方法三:spire打印方式(收费)下面是简单的使用例子
var pdf = new PdfDocument(filePath);
//设置打印机
pdf.PrintSettings.PrinterName = "Microsoft Print to PDF";
pdf.print();
方法四:安装RawPrint
var printer = new Printer();
var file = File.Open(filePath, FileMode.Open);
byte[] array = new byte[file.Length];
file.Read(array, 0, array.Length);
printer.PrintRawStream(printerName, file, "打印机上显示的任务名");
file.Close();
printer.PrintRawFile(printerName, fileFullPath, "打印机上显示的任务名");
这个测试时虚拟打印机上正常,使用公司打印机时出现乱码问题以及打印任务不停的问题
⑹ 请问各位大神:1.怎么实现将PDF显示在asp.net的网页之中,求详细操作与代码
直接输出流文件到页面上即可
我这个是根据路径读取到PDF在展示的 你可以根据你的需求修改下即可
经过测试是OK的 祝你好运
/// <summary>
/// 根据路径读取PDF文件
/// </summary>
/// <param name="path">路径</param>
/// <returns>字节数组</returns>
private byte[] GetPdfByPath(string path)
{
try
{
FileStream fs = File.Open(path, FileMode.Open);
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
HttpContext.Current.Response.ContentType = "application/pdf";
HttpContext.Current.Response.AddHeader("content-disposition", "filename=pdf");
HttpContext.Current.Response.AddHeader("content-length", buffer.Length.ToString());
HttpContext.Current.Response.BinaryWrite(buffer);
return buffer;
}
catch (Exception ex)
{
log.Error("方法:GetPdfByPath error", ex);
return null;
}
}
⑺ c# 实现PDF文件预览功能
利用Adobe PDF Reader 控件,实现在Winform中预览PDF文档。 实现方法如下:
(1)前提条件
必须事先在计算机安装Adobe Reader软件。Adobe Reader是免费软件,可以从Adobe官网下载安装
(2)在Visual Studio中新建一个“Windows 窗体应用程序”项目
(3)在工具箱上点鼠标右键-->选择项 -->COM组件-->Adobe PDF Reader