void ExtractTextFromEntity(MainForm mainForm, ICitaviEntity citaviEntity) { if (citaviEntity.EntityLinks.FirstOrDefault(link => link.Indication.Equals("PdfKnowledgeItem", StringComparison.OrdinalIgnoreCase))?.Target is Annotation annotation) { var documentParser = new DocumentParser(mainForm.PreviewControl.GetPdfViewControl()?.Document) { ParseType = ParseType.Text, DetectParagraphAlignment = true, ExtractIdentifier = false }; var text = documentParser .Run(annotation.Quads.Where(q => !q.IsContainer).ToList())? .GetDocumentText()? .ContentAsPlainText; if (!string.IsNullOrEmpty(text)) { Clipboard.SetText(text); } } }
public static bool IsSupportedCitaviEntity(this ICitaviEntity citaviEntity) { return(citaviEntity is KnowledgeItem || citaviEntity is TaskItem); }