Comment éditer un pdf dans le navigateur et l'enregistrer sur le serveur
Ici sont les besoins, l'utilisateur doit être en mesure d'afficher téléchargé des fichiers Pdf dans le navigateur. Ils doivent être en mesure d'ajouter des notes au format PDF et enregistrer le fichier PDF mis à jour sur le serveur sans avoir à l'enregistrer sur leur ordinateur et l'ouvrir en dehors du navigateur.
Toutes les idées sur la façon d'atteindre ce sont les bienvenus.
par la façon dont je travaille avec une asp.net site web (en C#).
Je n'ai aucun contrôle sur ce que l'pdf ressemble. Il est téléchargé côté client, puis les autres utilisateurs ont besoin de visualiser et d'une note sur le dessus de la pdf.
La solution que je pensais, c'est de rendre le fichier PDF en jpeg et d'utiliser javascript pour tracer les coordonnées de l'endroit où la note devrait aller.
voici un exemple rapide de l'html et javascript qui créent le json de la note à l'aide de 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>
Alors maintenant, j'ai besoin de comprendre comment:
- Rendre un fichier pdf en jpeg.
- Recréer le fichier PDF de mettre des annotations sur dessus sur elle.
source d'informationauteur Kenneth J
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser GhostScript pour rendre un fichier PDF en JPEG.
Exemple de ligne de commande:
Vous devez appeler GhostScript via la version en ligne de commande (comme ci-dessus) ou utiliser un wrapper.
Une recherche Google s'est jusqu'à ce blog:
Pour la création d'un nouveau fichier PDF, vous avez deux grandes variantes:
Pour les bibliothèques PDF voir ce DONC, la question:
Mon entreprise, Atalasoftfournit des composants qui vous permettent d'afficher des images de documents, y compris les fichiers Pdf et de les annoter et de les enregistrer les annotations de retour dans le PDF. Dans notre suite de produits, vous devez dotImage document imaging et le Lecteur de PDF add-on. Vous seriez à l'aide de dotAnnotate par le biais de notre web AJAX contrôles. Voici une lien vers notre démo en ligne - le document affiché est un TIFF, mais vous pouvez utiliser un fichier PDF trop.
Je ne pense pas que vous serez en mesure d'avoir un utilisateur charge un fichier pdf dans un navigateur, le modifier, l'enregistrer dans le serveur sans eux, l'enregistrer sur leur machine, puis de la charger sur le serveur.
Ce que vous pouvez faire est de configurer un formulaire en ligne avec une base de données client qui peut représenter le pdf, et quand ils le modifier, vous pouvez régénérer le fichier PDF à l'aide itextsharp et le chargement des informations de la base de données, de cette façon, lorsque l'utilisateur revient à modifier le fichier PDF, vous pouvez renseigner le formulaire avec ce qui existe déjà.
itextsharp est extrêmement facile à utiliser, voici un exemple:
alors si vous voulais montrer le réel du fichier PDF, vous pouvez facilement
Nous le faisons à l'aide de lowagie sur un Printemps/plate-forme Java.
Les utilisateurs sont présentés avec pré-généré déclarations de taxe de vente et pouvez ajouter certains ajustements manuels dans quelques domaines. Nous avons ensuite recalculer les totaux des champs en fonction de leur saisie manuelle et de sauvegarder l'ensemble de chose en retour à notre base de données.
Vous pouvez utiliser PDFSharp ou itextsharp pour créer des annotations. N'avez pas essayé PDFSharp annotation mais iTextSharp fonctionne. Vous devrez gérer le montage sur le côté serveur. probablement copier le fichier dans un dossier temp de le modifier et de les enregistrer en arrière.
Vous trouverez itextsharp à http://itextsharp.sourceforge.netannotation exemple: en bas, à la page http://itextsharp.sourceforge.net/tutorial/ch03.html
pdfsharp: http://www.pdfsharp.net
Si vous êtes en mesure de acheter un tiers de la bibliothèque, je serais assez bien recommander TxTextControl. http://www.textcontrol.com/en_US/
Avec cette commande vous pouvez écrire un éditeur, qui vous permet d'utiliser votre fichier pdf en tant que modèle et permet à l'utilisateur d'effectuer des modifications et de les enregistrer. Tous les dans le navigateur, sans le besoin de sélectionner manuellement un fichier temporaire sur l'ordinateur. Acessing est à peu près comme l'utilisation de la TextProperty normal d'une zone de texte.
Vous n'avez pas spécifié quelles limites de la technologie que vous avez. Si vous pouvez envisager une solution de Silverlight, et vous avez des ordinateurs clients qui prennent en charge Silverlight, vous pouvez facilement le faire.
Jetez un oeil à la façon dont Microsoft Sketchflow œuvres, il permet à l'utilisateur d'annoter des documents dans le navigateur web et les annotations sont conservées sur le serveur.
Ici est une société avec un le contrôle commercial pour annoter les PDF (et autres formats).
Microsoft en leur Sketchflow joueur. Voici une vidéo. Bien sûr, vous ne seriez pas à l'aide de sketchflow, mais plutôt implimenting quelque chose de semblable qui répond à vos besoins.
Comme un bonus supplémentaire Silverlight 4 supporte le presse-papiers ainsi que de glisser-déposer, de sorte que les utilisateurs finaux pourraient coller quelque chose sur le PDF immage ainsi que de glisser sur n'importe quel fichier sur il ehich vous serait alors en mesure de télécharger à votre serveur.