{"id":28930323,"url":"https://github.com/pgrit/beampdf","last_synced_at":"2025-07-22T22:03:50.482Z","repository":{"id":298076478,"uuid":"997372940","full_name":"pgrit/beampdf","owner":"pgrit","description":"Presents PDF files as a slideshow with presenter view, quick slide navigation, and easy screen switching","archived":false,"fork":false,"pushed_at":"2025-07-04T10:45:51.000Z","size":582,"stargazers_count":3,"open_issues_count":3,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-04T11:43:35.945Z","etag":null,"topics":["pdf","pdf-viewer","presentation","slide"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pgrit.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-06T12:19:10.000Z","updated_at":"2025-07-04T10:45:54.000Z","dependencies_parsed_at":"2025-07-04T11:33:38.265Z","dependency_job_id":"b0d9555b-351b-4d0f-9e1b-b9df8c568720","html_url":"https://github.com/pgrit/beampdf","commit_stats":null,"previous_names":["pgrit/beampdf"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pgrit/beampdf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgrit%2Fbeampdf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgrit%2Fbeampdf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgrit%2Fbeampdf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgrit%2Fbeampdf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pgrit","download_url":"https://codeload.github.com/pgrit/beampdf/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pgrit%2Fbeampdf/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266580298,"owners_count":23951193,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-22T02:00:09.085Z","response_time":66,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pdf","pdf-viewer","presentation","slide"],"created_at":"2025-06-22T15:06:28.826Z","updated_at":"2025-07-22T22:03:50.473Z","avatar_url":"https://github.com/pgrit.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# beampdf\n\nA simple cross-platform app to present a PDF slideshow. Based on [Avalonia](https://github.com/AvaloniaUI/Avalonia) and [MuPDF.NET](https://github.com/ArtifexSoftware/MuPDF.NET).\n\n## Features\n\n- Presenter view\n  - Displays current slide and previews the next one\n  - Timer (starts automatically on first slide switch, start or reset manually with `S`) and current system time in 24h format\n- Navigate slides\n  - Slide number based on PDF page labels; pages with same label are assumed to be part of a single animated slide\n  - Forward and backwards via arrow keys\n  - Type number and hit `Enter` to jump\n  - Clickable slide-thumbnails with current slide highlighted\n- Fullscreen slide view\n  - In a separate window\n  - Open with `F5` close with `ESC`\n  - Keyboard shortcuts (`Shift + N` to move to the n-th screen)\n- Simple drawing tool\n  - Sketch temporary drawings on the slide\n  - Resets on slide navigation or via `Backspace`\n  - Supports pen pressure\n- Magnifier\n  - Select a crop via right-click and drag or `Ctrl+` left-click and drag\n  - Reset via right-click or `Ctrl+left`\n- Recent files (open dialog with `R`)\n  - List of opened files is tracked in a `.csv` file in the `ApplicationData` folder (as reported by `Environment.SpecialFolder.ApplicationData`)\n- Speaker notes\n  - As embedded files in the PDF\n    - filename must be `XX-speaker-note` where XX is the slide number (page label, not \"real\" page)\n    - content is interpreted as UTF-8 string\n  - As annotations: annotations in the PDF are rendered into the presenter view only\n- Video via [libVLCSharp](https://code.videolan.org/videolan/LibVLCSharp)\n  - Embedded files in in the PDF with special filename provide video playback hints:\n    - `XX-video-FILENAME` where XX is the slide number and `FILENAME` the relative path from the `.pdf` to the video\n    - the file description must be `X,Y,W` where `X` and `Y` are the top left corner and `W` the width of the video in the `.pdf` (in points)\n  - Playback starts automatically in the fullscreen display when the slide is opened\n  - `libVLC` is an optional dependency; without it, PDFs that don't contain video can still be presented\n\n## Screenshots\n### The presenter view in action\n\u003cimg src=\"Screenshots/PresenterView.png\" width=\"650\" alt=\"Screenshot of the presenter view with an ongoing slidshow, showing the below mentioned components\" /\u003e\n\n### Recent files dialog for quick PDF switching\n\u003cimg src=\"Screenshots/RecentFiles.png\" width=\"350\" alt=\"Screenshot of the recent files dialog showing thumbnails and filename for two recently opened .pdf files\" /\u003e\n\n## Using beampdf\n\nCurrently, no binaries are provided. Only tested on Windows and Linux, but should run on any platform supported by Avalonia and MuPDF.NET.\n\nTo run from source, install the [.NET SDK](https://dotnet.microsoft.com/en-us/download) and run\n```\ndotnet run -c Release\n```\n\nTo build deployable binaries\n```\ndotnet publish -c Release\n```\n\nFor video support on Linux, install libvlc. Something like\n```sh\n# Debian / Ubuntu / etc\nsudo apt install vlc libvlc-dev\n# Fedora etc\nsudo dnf install vlc vlc-devel\n```\n(see https://github.com/videolan/libvlcsharp/blob/3.x/docs/linux-setup.md)\nWithout libVLC, if you open a PDF with a video, beampdf will crash when trying to play it currently.\n\n### Preventing the screen from turning off\nOn Windows, the screen is kept awake while the DisplayWindow is open (via WinAPI). On Linux, similar behavior can be achieved by running via\n```sh\nsystemd-inhibit beampdf\n```\n\n## Typst support for video and notes\n\nSee [beampdf.typ](./Test/beampdf.typ) for the Typst code to output speaker notes and video links in the PDF. An example for a full slide can be found in the [Test](./Test/) directory.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgrit%2Fbeampdf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpgrit%2Fbeampdf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpgrit%2Fbeampdf/lists"}