kandi X-RAY | zotfile Summary
kandi X-RAY | zotfile Summary
Zotero plugin to manage your attachments: automatically rename, move, and attach PDFs (or other files) to Zotero items, sync PDFs from your Zotero library to your (mobile) PDF reader (e.g. an iPad, Android tablet, etc.), and extract PDF annotations.
Top functions reviewed by kandi - BETA
zotfile Key Features
zotfile Examples and Code Snippets
Trending Discussions on Document Editor
I am trying to implement a document editor similar to Notion or Craft but in a WinUI/UWP application. Instead of using a "single-field" editor (like MS Word has), these apps show a vertical stack of content rows (so-called "blocks") that can contain text, media, link previews, LaTeX, etc. These rows can be rearranged with a
:: handle on the side:
So I've been looking for some list/stack control that:
- Recycles the row views that are not visible (i.e. "virtualization" in the XAML terminology).
- Allows to reorder rows by dragging and dropping them (single or multiple).
- Automatically adjusts row heights based on their content growing or shrinking in height (due to the user's input or because the app's window resized horizontally and wrapped some content).
Features I do not need: headers, columns, sorting, filtering. I have reviewed the following controls in WinUI 2.x and Windows Community Toolkit, but it looks like each of them lacks one or more of the required capabilities.ListView
It seems to be the go-to control for the lists with drag'n'drop, but it can't resize the items dynamically. Also, its dragging uses the whole item area while I need to make it available only with a
:: handle on the side.
A virtualization-supporting version of StackPanel, but, as far as I understand, panels are supposed to be used for simple layouting of child items and not for presenting long lists based on a data source.VariableSizedWrapGrid
This is the only list/grid control that officially declares the support of variable-sized items, but at the same time, it does not support virtualization. However, I found a solution from 2013 that is based on pre-calculating the content size for invisible elements.ItemsRepeater
A very basic control that does not provide virtualization on its own: "ItemsRepeater supports virtualization when attached to a host that supports virtualization."DataGrid
A rather heavy control from WCT that seems to be the only one to dynamically resize cells depending on their content. Unfortunately, it does not allow row reordering (only sorting), so I can't use it either.
Did I miss something? If not, I wonder which one would be the best to build upon. Thanks!...
ANSWERAnswered 2021-Jun-30 at 06:55
I have to say there is no control could fulfill all demands. In fact, the :: is used to control darg the specified item, you could achieve similar behavior in ListView control.
The ListView allows you to easily reorder items inside a ListView by setting the
AllowDrop properties to True.If you don’t want to allow the user to drag specific items, you could set the
CanDragItems property to True, and add an event handler for the
DragItemsStarting event. For the event handler, you can check any condition and then simply set the Cancel property of the event arguments to true if you want to cancel the dragging action. As follows:
I’ve just started porting my iPad app to the Mac using Catalyst. It’s a document editor and uses
UIDocument. I’m trying to get the default toolbar behaviour for a document editor on macOS where there’s a dropdown to quickly name, tag, and move the document, and a subtitle that shows if the document has been edited. I can’t see any way to do this with Catalyst — is it possible?
ANSWERAnswered 2021-Feb-16 at 10:53
A representative from Apple confirmed to me that this is not possible using Catalyst. In my opinion this makes Catalyst unsuitable for document based apps at the moment (Big Sur is currently the latest version of macOS).
I am using ej2 sync fusion in my angular 7 application. How to extract the edited text in document editor component. and how to hide the right side toolbar on creation of the document editor component....
ANSWERAnswered 2020-Oct-29 at 11:34
Reg. how to extract the edited text.
To extract the whole document text in editor, you can either select the whole document by selectAll API from selection module and with text property from selection, you can get the selected text.
Please refer the below sample code snippets
//Selects the whole document.
//To retrieve selected text
You can also save the document as txt file in server-side and read the text file content to get the document text.
Please refer the below documentation for saving the document content in server side
In the above documentation example, sample will be saved as RTF document. You can change the format to TXT and read the text content from text file.
Reg. “how to hide the right-side toolbar on creation of the document editor component.”
Yes, document editor provides option to hide the properties pane. Please set showPropertiesPane property to false in component wrapper
Sample code snippet
Is it possible to access the appProperties field in a Google Drive document via an unauthenticated user (i.e., via API Key or other method rather than Oauth)?Background:
I have an app that works as a live document editor. It authenticates users via OAuth and allows them to save those documents to their google drive, and later re-open them in my app (google file ids are saved in my database and will load the document text into my app). Create()-ing and Get()-ing these files works fine as long as the user is signed in, and I have the "appProperties" field storing a couple of additional key metadata items.
As a next step, I would like to allow users to mark a document as "public view", and provide read-only access to their file, even for non-logged-in users. In my head, the flow would work as follows:
- User_A authenticates with OAuth and creates a document, saved to their google drive.
- User_A presses a button in my app, which sets the google document to a public sharing mode?
- App generates a "viewer" link that User_A can share with his friends.
- User_B does not have a Google account, but visits the "viewer link", and my app looks up the appropriate google document (using API key? since User_B is not logged in)
- Document is loaded into my app for viewing.
This seems to mostly work; I can read the file metadata just fine using the API key, and even get the file contents. Side Note: Why do we need the API Key at all, given the quote on the google drive api page: "Note: Authorization optional."
However, the "appProperties" field always returns empty when using the API key!
Edit: After further searching I am just more confused. The closest answer I could find was from this related question here on stackoverflow:
It's very simple. appPropperties is a private field and is available only to the application that added it.
Based on this, it seems Google Drive is treating requests from my app API Key and requests from OAuth users on my app as two separate apps?
Further, I would eventually like to allow users to collaborate on a single document, owned by one user. So instead of just providing a read-only "view" link, they could generate an "editor invitation" link that would allow an authenticated user (User_B gets a google account now) to be added as an authorized collaborator (but not simultaneous editing) on the original (User_A's) document. Is that even possible?
Note I am using the Node.js google api....
ANSWERAnswered 2020-Oct-01 at 12:28
appProperties are app-specific properties attached to a file. Any call from this app should be able to access them. Therefore, I think calls from this app using an API key should be able to retrieve these properties.
I could reproduce this behaviour:
appProperties are populated when using OAuth, but not when using an API key, even though both are created from the same GCP project.
After researching this issue, I think this might be a bug. Therefore, I decided to file a bug on Issue Tracker:
To anyone affected by this, I'd suggest to click the top-left star in order to keep track of this and to help prioritizing it.Reference:
In my AvalonEdit-based document editor, I am trying to add marker lines to the text view to indicate folds in the document, in a similar way to how Visual Studio joins the start and end of code block braces with dotted lines.
I have something that produces the correct result if the document is scrolled to the very top, but it doesn't update correctly if the document is scrolled down. Specifically, the lines are drawn as if the text view wasn't scrolled at all, and was still at the top of the document. I suspect the problem has something to do with the
GetVisualPosition lines, but I don't understand how to correctly get the adjusted visual position with scrolling.
(To be clear, I have checked, and the
Draw method is being called at the appropriate times to update the background, it's just that scrolling isn't accounted for when it does)
What I have so far, is the following, on a class which implements
ANSWERAnswered 2020-Jul-22 at 17:35
GetVisualPosition is documented as:
Returns: The position in WPF device-independent pixels relative to the top left corner of the document.
To use it for painting, you'll want to subtract the scroll position from it:
I'm trying to implement a zoom in/out functionality, just like you would have on a document editor like google docs or any word processor application. The problem I'm having is that I cannot keep the "document" centered and also be able to scroll all of its parts into view. Here is a small demonstration of the problem: https://codepen.io/liviu_vasut/pen/dyGbwwO...
ANSWERAnswered 2020-Jun-02 at 09:47
Actually, use the
transform-origin: 0 0; and manually set the scrollbar to the center:
No vulnerabilities reported
download .zip file from github
extract .zip file
recreate .zip file containing all the files at the top level, i.e., install.rdf and the chrome directory need to be at the root of the .zip file and not under zotfile/
rename the file to .xpi
For zotero firefox: drag & drop on firefox
For zotero standalone: In Zotero Standalone go to 'Tools->Add-ons->Tools for all Add-ons (the small, drop-down wheel menu next to the 'Search all Add-ons' box)->Install Add-on From File' and pick the .xpi file.
Reuse Trending Solutions
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page