Features ======== *Windows Only* Allows for text and HTML on Windows. Supported Clipboard Formats =========================== - Text - HTML - RTF Clipboard ========= Will open and close every time the values are set, or retrieved. It's better to use a context manager. .. code:: python from clipboard import Clipboard clipboard = Clipboard() # Set Clipboard clipboard["text"] = "Hello World!" # OR clipboard.set_clipboard("Hello World!") # Get Clipboard text = clipboard["text"] # OR text = clipboard.get_clipboard("text") # Supports HTML clipboard["html"] = "

Hello World

" Context Manager =============== .. code:: python from clipboard import Clipboard with Clipboard() as clipboard: # Set Clipboard clipboard["text"] = "Hello World!" # OR clipboard.set_clipboard("Hello World!") # Get Clipboard text = clipboard["text"] # OR text = clipboard.get_clipboard("text") # HTML clipboard["html"] = "

Hello World

" Get Clipboard Formats ===================== ``ClipboardFormats`` : Enum for clipboard formats. ``ClipboardFormats.CF_HTML`` : Represents HTML format. ``ClipboardFormats.CF_RTF`` : Represents rich text format. .. code:: python from clipboard import Clipboard from clipboard import ClipboardFormat from clipboard import get_format_name with Clipboard() as clipboard: # Get All Available Formats format_ids: list[int] = clipboard.available_formats() # Get Specific Format by ID # Use parentheses to access the format by ID formats: list[ClipboardFormat] = [] format_id: int for format_id in format_ids: if format_id in ClipboardFormat: format: ClipboardFormat = ClipboardFormat(format_id) formats.append(format) else: # Format is not supported directly by this library pass # Get Specified Format by Name (directly) format_names: list[str] = [] format_id: int for format_id in format_ids: name: str = get_format_name(format_id) format_names.append(name) # Get Specified Format by Name (using enum) # Use bracket notation to access the format # # Note: this method is not as robust as using `get_format_name` formats: list[ClipboardFormat] = [] format_names: list[str] = [] format_name: str for format_name in [f.name for f in formats]: if format_name in ClipboardFormat: format: ClipboardFormat = ClipboardFormat[format_name] name: str = format.name formats.append(format) format_names.append(name) else: # Format is not supported directly by this library pass Get All Supported Formats ===================== You can even get the content of all available formats currently in the clipboard. .. code:: python from clipboard import get_available_formats from clipboard import get_format_name from clipboard import get_clipboard available: list[int] = get_available_formats() print(f"{available=}") for format_id in available: name: str = get_format_name(format_id) content: str = get_clipboard(format_id) print(f"{format_id=}", f"{name=}, {content=}")