Ken*_*h J 16 .net c# pdf asp.net pdf-generation
以下是要求,用户需要能够在浏览器中查看上载的PDF.他们需要能够向PDF添加注释并将更新的PDF保存到服务器,而无需将其保存到计算机并在浏览器外部打开.
关于如何实现这一点的任何想法都受到欢迎.
顺便说一句,我正在使用asp.net网站(在C#中).
我无法控制pdf的外观.它是客户端上传的,然后其他用户需要在pdf上查看和注释.
我想的解决方案是将PDF渲染为jpeg并使用javascript绘制笔记应该去的位置的坐标.
这里是一个简单的html和javascript示例,用于创建note的json(使用jQuery.)
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title></title>
<style type="text/css">
*
{
margin:0;
padding:0;
}
#PDF
{
position:absolute;
top:0;
bottom:0;
width:600px;
height:800px;
background:url(assets/images/gray.png) repeat;
float:left;
}
#results
{
float:right;
}
.comment
{
position:absolute;
border:none;
background-color:Transparent;
height:300px;
width:100px;
overflow:auto;
float:left;
top:0;
right:0;
font-family: Arial;
font-size:12px;
}
div.comment
{
padding-top:-20px;
}
.comment a.button
{
display:block;
padding-top:-20px;
}
</style>
</head>
<body>
<div>
<div id="PDF"></div>
<div id="results">
</div>
</div>
</body>
</html>
<script type="text/javascript" src="script/jquery.js"></script>
<script type="text/javascript">
var points = [];
$("#PDF").click(function(e) {
if ($("textarea.comment").length == 0) {
var that = this;
var txt = $("<textarea class='comment'></textarea>").css({ top: e.pageY, left: e.pageX }).blur(function() { $(this).remove(); }).keypress(function(e2) {
if (e2.keyCode == 13 && !e.shiftKey) {
var that2 = this;
$("#PDF").append($("<div class='comment'>").html(that2.value.replace(/\r/gi, "<br>")).css({ top: e.pageY, left: e.pageX }));
$(this).remove();
points.push({ "x": e.pageX, "y": e.pageY, "text": that2.value })
$("#results").append('{ "x": ' + e.pageX + ', "y": ' + e.pageY + ', "text": "' + that2.value + '" }<br/>');
}
});
$(this).append(txt);
txt.each(function() { this.focus(); })
}
});
</script>
Run Code Online (Sandbox Code Playgroud)
所以现在我需要弄清楚如何:
您可以使用GhostScript将PDF呈现为JPEG.
命令行示例:
gswin32c.exe -dSAFER -dBATCH -dNOPAUSE -sDEVICE=jpeg -r300 -sOutputFile=output.jpg input.pdf
Run Code Online (Sandbox Code Playgroud)
您需要通过命令行版本(如上所述)调用GhostScript或使用包装器.谷歌搜索发现了这篇博文:
要创建新PDF,您有两个主要选择:
对于PDF库,请参阅此SO问题: