- De nombreuses applications comme RepliGo, Aldiko, Mantano, ezPdf dans l'android market faire ce type d'annotation dans leur visionneuse pdf illustré dans l'image ci-dessous.
- J'ai essayé de nombreuses façons de mettre en œuvre cette annotation, mais j'ai échoué. J'ai un pdf viewer pour android et séparée de code java pour les annotations à l'aide de la bibliothèque iText pour dessiner des lignes.
- Ma question est puis-je en mesure de mettre en œuvre iText dans android. Si c'est possible, quelle formule dois-je importer?
- Aussi, dans certaines applications, une toile méthode est utilisée pour dessiner des lignes. Est-il possible d'inclure cette toile méthode dans android au lieu d'utiliser une annotation?. L'objectif serait d'avoir les mêmes caractéristiques que les annotations ont.
- Dans l'image ci-dessous (RepliGo Reader PDF) le type de code ont-ils utiliser pour les annotations?
Réponses
Trop de publicités?Votre question semble être ce que sont les méthodes pour permettre aux utilisateurs d'annoter un fichier PDF en android/java, voici donc une méthode pour vous, mais il peut ne pas être la meilleure solution.
Je tiens à souligner qu'il n'est pas nécessaire de modifier la réelle fichier PDF simplement pour permettre aux utilisateurs d'ajouter et afficher les annotations. Votre application peut enregistrer les données pour les annotations séparément, de stocker ces annotations pour chaque fichier, et de les charger lorsque le fichier est chargé.
Cela signifie qu'il ne va pas créer un nouveau fichier PDF avec ces annotations placé, mais au lieu de cela, il va juste stocker des données utilisateur pour chaque fichier PDF qui est chargé dans votre application, et d'afficher lorsque l'utilisateur charge le fichier PDF de nouveau. (Il semble être annoté).
Exemple:
- Lire fichier PDF, texte, mise en forme du texte et des images dans votre application
- Affichage d'un document (comme un traitement de texte)
- Permettre à l'utilisateur d'éditer et annoter le document
- Enregistrer les modifications et d'annotation de données dans votre application (pas le fichier PDF)
- Lors du chargement d'un nouveau fichier, appliquer les modifications et annotations stockées précédemment.
Votre annotation classe pourrait ressembler à quelque chose comme ceci:
class Annotations implements Serializable {
public Annotations() {
annotations = new HashSet<Annotation>();
}
public ArrayList<Annotation> getAnnotations() {
return new ArrayList<Annotation>(annotations);
}
public Annotation annotate(int starpos, int endpos) {
Annotation a = new Annotation(startpos, endpos);
annotations.add(a);
return a;
}
public void unannotate(Annotation a) {
annotations.remove(a);
}
static enum AnnotationTypes {
HIGHLIGHT, UNDERLINE;
}
class Annotation {
int startPos, endPos;
AnnotationTypes type;
Color color;
Annotation(int start, int end) {
startPos = start;
endPos = end;
}
public void update(int start, int end) {
startPos = start;
endPos = end;
}
public void highlight(int red, int green, int blue) {
type = AnnotationTypes.HIGHLIGHT;
color = new Color(red, green, blue);
}
public void underline(int red, int green, int blue) {
type = AnnotationTypes.UNDERLINE;
color = new Color(red, green, blue);
}
// getters
...
}
private Set<Annotation> annotations;
}
Donc, vous êtes juste le stockage de l'annotation-afficher les données ici, et lorsque vous chargez le fichier et son respectives (sérialisés) les Annotations de l'objet, vous pouvez utiliser chaque annotation à affecter la façon dont vous afficher des caractères entre l' startPos
et endPos
dans votre document.
Bien que j'ai utilisé int
s pour les deux positions startPos
et endPos
, vous pouvez également utiliser deux ou plus de deux variables pour désigner les indices de tableau, base de données SQLite index de table, char positions pour de simples documents de texte; quelle que soit votre application est que vous pouvez simplement modifier de manière à ce que vous savez par où commencer annoter et où à la fin de l'annotation avec qui AnnotationType.
Aussi, vous pouvez configurer un changement de propriété d'auditeurs, de sorte que lors de l'annotation des propriétés sont modifiées ils incendie au large de méthodes pour mettre à jour votre affichage/vue.
Pdf-annotation est une source ouverte et un bon point pour commencer https://code.google.com/p/pdf-annotation/