GET https://kbin.spritesserver.nl/m/piracy@lemmy.dbzer0.com/t/27287/PDF-Piracy/comment/281314/votes/down

Security

Token

There is no security token.

Firewall

main Name
Security enabled
Stateless

Configuration

Key Value
provider security.user.provider.concrete.app_user_provider
context main
entry_point App\Security\KbinAuthenticator
user_checker App\Security\UserChecker
access_denied_handler (none)
access_denied_url (none)
authenticators
[
  "two_factor"
  "remember_me"
  "App\Security\KbinAuthenticator"
  "App\Security\FacebookAuthenticator"
  "App\Security\GoogleAuthenticator"
  "App\Security\GithubAuthenticator"
  "App\Security\KeycloakAuthenticator"
]

Listeners

Listener Duration Response
Symfony\Component\Security\Http\Firewall\ChannelListener {#723
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
  -logger: Monolog\Logger {#783 …}
  -httpPort: 80
  -httpsPort: 443
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\ContextListener {#706
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage {#1017 …}
  -sessionKey: "_security_main"
  -logger: Monolog\Logger {#783 …}
  -userProviders: Symfony\Component\DependencyInjection\Argument\RewindableGenerator {#705 …}
  -dispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
  -registered: false
  -trustResolver: Scheb\TwoFactorBundle\Security\Authentication\AuthenticationTrustResolver {#780 …}
  -sessionTrackerEnabler: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage::enableUsageTracking(): void {#703 …}
}
0.21 ms (none)
Symfony\Component\Security\Http\Firewall\AuthenticatorManagerListener {#584
  -authenticatorManager: Symfony\Component\Security\Http\Authentication\AuthenticatorManager {#595 …}
}
0.00 ms (none)
Scheb\TwoFactorBundle\Security\Http\Firewall\TwoFactorAccessListener {#582
  -twoFactorFirewallConfig: Scheb\TwoFactorBundle\Security\TwoFactor\TwoFactorFirewallConfig {#842 …}
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -twoFactorAccessDecider: Scheb\TwoFactorBundle\Security\Authorization\TwoFactorAccessDecider {#581 …}
}
0.05 ms (none)
Symfony\Component\Security\Http\Firewall\AccessListener {#579
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -accessDecisionManager: Symfony\Component\Security\Core\Authorization\TraceableAccessDecisionManager {#937 …}
  -map: Symfony\Component\Security\Http\AccessMap {#722 …}
}
0.00 ms (none)
Symfony\Component\Security\Http\Firewall\LogoutListener {#786
  -tokenStorage: Symfony\Component\Security\Core\Authentication\Token\Storage\UsageTrackingTokenStorage {#1018 …}
  -options: [
    "csrf_parameter" => "_csrf_token"
    "csrf_token_id" => "logout"
    "logout_path" => "app_logout"
  ]
  -httpUtils: Symfony\Component\Security\Http\HttpUtils {#841 …}
  -csrfTokenManager: Symfony\Component\Security\Csrf\CsrfTokenManager {#1015 …}
  -eventDispatcher: Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher {#747 …}
}
0.00 ms (none)

Authenticators

No authenticators have been recorded. Check previous profiles on your authentication endpoint.

Access Decision

affirmative Strategy
# Voter class
1
"Symfony\Component\Security\Core\Authorization\Voter\AuthenticatedVoter"
2
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
3
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
4
"Symfony\Component\Security\Core\Authorization\Voter\ExpressionVoter"
5
"App\Security\Voter\EntryCommentVoter"
6
"App\Security\Voter\EntryVoter"
7
"App\Security\Voter\MagazineVoter"
8
"App\Security\Voter\MessageThreadVoter"
9
"App\Security\Voter\MessageVoter"
10
"App\Security\Voter\NotificationVoter"
11
"App\Security\Voter\OAuth2UserConsentVoter"
12
"App\Security\Voter\PostCommentVoter"
13
"App\Security\Voter\PostVoter"
14
"App\Security\Voter\UserVoter"

Access decision log

# Result Attributes Object
1 DENIED ROLE_USER
null
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"Symfony\Component\Security\Core\Authorization\Voter\RoleHierarchyVoter"
ACCESS DENIED
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
2 DENIED moderate
App\Entity\EntryComment {#1365
  +user: Proxies\__CG__\App\Entity\User {#1378 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "piracy@lemmy.dbzer0.com"
    +title: "piracy"
    +description: """
      ##### ⚓ Community devoted to in-depth debate on topics concerning digital piracy, ethical problems, and legal advancements.\n
      \n
      ---\n
      \n
      ### Rules • [Full Version](https://rentry.co/piracy-rules)\n
      \n
      **1**. Posts must be related to the discussion of digital piracy\n
      \n
      **2**. Don’t request invites, trade, sell, or self-promote\n
      \n
      **3**. Don’t request or link to specific pirated titles, including DMs\n
      \n
      **4**. Don’t submit low-quality posts, be entitled, or harass others\n
      \n
      **5**. Don’t post questions already answered. READ THE [WIKI](https://lemmy.dbzer0.com/post/10901)\n
      \n
      ---\n
      \n
      [![](https://a.imagem.app/oZoQ1v.png)](https://lemmy.dbzer0.com/post/10901)\n
      ---------------------------------------------------------------------------\n
      \n
      ### Loot, Pillage, & Plunder\n
      \n
      - [📜 Megathread](https://rentry.co/megathread)\n
      - [🪶 FAQ](https://rentry.co/piracy-faq)\n
      - [🪶 ISP Complaints](https://rentry.co/piracy-isp-complaints)\n
      - [🪶 Rules](https://rentry.co/piracy-rules)\n
      \n
      ---\n
      \n
      💰 Please help cover server costs.\n
      \n
      [![Ko-Fi](https://lemmy.dbzer0.com/pictrs/image/4a2f073a-3dd8-492a-942d-72bd929c9f1d.png)](https://ko-fi.com/dbzer0)[![Liberapay](https://lemmy.dbzer0.com/pictrs/image/eec4659d-39be-4fc9-bc9e-66a96285ea2c.png)](https://liberapay.com/db0/)\n
      \n
      ---
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 866
    +entryCommentCount: 20194
    +postCount: 7
    +postCommentCount: 149
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729581369 {#323
      date: 2024-10-22 09:16:09.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 51
    +apId: "piracy@lemmy.dbzer0.com"
    +apProfileId: "https://lemmy.dbzer0.com/c/piracy"
    +apPublicUrl: "https://lemmy.dbzer0.com/c/piracy"
    +apFollowersUrl: "https://lemmy.dbzer0.com/c/piracy/followers"
    +apInboxUrl: "https://lemmy.dbzer0.com/inbox"
    +apDomain: "lemmy.dbzer0.com"
    +apPreferredUsername: "piracy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1708748229 {#317
      date: 2024-02-24 05:17:09.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1697197339 {#316
      date: 2023-10-13 13:42:19.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    There are some free, open-source command line tools that can do this.\n
    \n
    First off, there’s [exiftool](https://exiftool.org/). It’s the go-to utility to read and write metadata in a wide variety of file types, like mp3, jpg, and you guessed it, pdf. It’s very easy to use:\n
    \n
    To read all the metadata in a file: `exiftool -a -All <file>` (where &lt;file&gt; is the path to your pdf).\n
    \n
    To erase all the metadata in a file: `exiftool -a -All=“” <file>` (that’s two double-quotes, to indicate a blank string). Please note that this will overwrite your file in-place! If you want to save the output as a new file, use `exiftool -a -All=“” -o <output_file> <file>`.\n
    \n
    exiftool is likely all you need for your use case, but if you need more advanced PDF manipulation, with a truly dizzying array of options, there’s [Ghostscript](https://ghostscript.readthedocs.io/en/latest/Use.html). Ghostscript can read, write, and convert PDFs, and provides hooks to apply any PostScript commands and options.\n
    \n
    To simply print out information on a PDF file: `gs -dPDFINFO -dBATCH <file>`. This will show you the metadata, such as author, title, etc.\n
    \n
    I’m…not going to give you an example of how to use Ghostscript to edit metadata because I’m not confident I’d get it right. The gist is that you use PostScript commands with the -c flag. It is truly arcane but extraordinarily powerful.\n
    \n
    If you’re on Linux, you can likely get both of these with your distro’s default package manager. On Mac, use Homebrew or MacPorts. On Windows, you can download prebuilt binaries from their web sites. I think you can even run them on Android using Tmux [Termux](https://termux.dev/en/).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 15
  +score: 0
  +lastActive: DateTime @1711829954 {#1605
    date: 2024-03-30 21:19:14.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1370 …}
  +nested: Doctrine\ORM\PersistentCollection {#1375 …}
  +votes: Doctrine\ORM\PersistentCollection {#2424 …}
  +reports: Doctrine\ORM\PersistentCollection {#1898 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1841 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2354 …}
  -id: 281314
  -bodyTs: "'/).':22 '/en/).':291 '/en/latest/use.html).':154 'advanc':139 'android':285 'appli':166 'arcan':237 'array':146 'author':192 'binari':272 'blank':95 'c':232 'case':133 'command':8,169,229 'confid':216 'convert':160 'd':218 'dbatch':183 'default':257 'distro':255 'dizzi':145 'doubl':90 'double-quot':89 'download':270 'dpdfinfo':182 'easi':53 'edit':210 'eras':76 'etc':194 'even':281 'exampl':203 'exiftool':19,64,83,120,124 'exiftool.org':21 'exiftool.org/).':20 'extraordinarili':239 'file':40,63,68,82,104,118,180 'first':15 'flag':233 'free':4 'get':219,249 'ghostscript':151,155,208 'ghostscript.readthedocs.io':153 'ghostscript.readthedocs.io/en/latest/use.html).':152 'gist':223 'give':200 'go':27,198 'go-to':26 'gs':181 'guess':47 'homebrew':263 'hook':164 'in-plac':105 'indic':93 'inform':176 'jpg':44 'like':42,126,248 'line':9 'linux':245 'm':196,214 'mac':261 'macport':265 'manag':259 'manipul':141 'metadata':34,60,79,189,211 'mp3':43 'need':129,137 'new':117 'note':98 'o':123 'open':6 'open-sourc':5 'option':148,171 'output':114 'overwrit':102 'packag':258 'path':71 'pdf':49,74,140,179 'pdfs':161 'place':107 'pleas':97 'postscript':168,228 'power':240 'prebuilt':271 'print':174 'provid':163 'quot':91 're':243 'read':31,57,157 'right':221 'run':282 'save':112 'show':186 'simpli':173 'site':276 'sourc':7 'string':96 'termux':288 'termux.dev':290 'termux.dev/en/).':289 'think':278 'titl':193 'tmux':287 'tool':10 'truli':144,236 'two':88 'type':41 'use':55,119,132,207,227,262,286 'util':29 'varieti':38 'want':110 'web':275 'wide':37 'window':267 'write':33,158"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6949662"
  +editedAt: DateTimeImmutable @1711788493 {#1377
    date: 2024-03-30 09:48:13.0 +01:00
  }
  +createdAt: DateTimeImmutable @1704417710 {#1927
    date: 2024-01-05 02:21:50.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
3 DENIED edit
App\Entity\EntryComment {#1365
  +user: Proxies\__CG__\App\Entity\User {#1378 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "piracy@lemmy.dbzer0.com"
    +title: "piracy"
    +description: """
      ##### ⚓ Community devoted to in-depth debate on topics concerning digital piracy, ethical problems, and legal advancements.\n
      \n
      ---\n
      \n
      ### Rules • [Full Version](https://rentry.co/piracy-rules)\n
      \n
      **1**. Posts must be related to the discussion of digital piracy\n
      \n
      **2**. Don’t request invites, trade, sell, or self-promote\n
      \n
      **3**. Don’t request or link to specific pirated titles, including DMs\n
      \n
      **4**. Don’t submit low-quality posts, be entitled, or harass others\n
      \n
      **5**. Don’t post questions already answered. READ THE [WIKI](https://lemmy.dbzer0.com/post/10901)\n
      \n
      ---\n
      \n
      [![](https://a.imagem.app/oZoQ1v.png)](https://lemmy.dbzer0.com/post/10901)\n
      ---------------------------------------------------------------------------\n
      \n
      ### Loot, Pillage, &amp; Plunder\n
      \n
      - [📜 Megathread](https://rentry.co/megathread)\n
      - [🪶 FAQ](https://rentry.co/piracy-faq)\n
      - [🪶 ISP Complaints](https://rentry.co/piracy-isp-complaints)\n
      - [🪶 Rules](https://rentry.co/piracy-rules)\n
      \n
      ---\n
      \n
      💰 Please help cover server costs.\n
      \n
      [![Ko-Fi](https://lemmy.dbzer0.com/pictrs/image/4a2f073a-3dd8-492a-942d-72bd929c9f1d.png)](https://ko-fi.com/dbzer0)[![Liberapay](https://lemmy.dbzer0.com/pictrs/image/eec4659d-39be-4fc9-bc9e-66a96285ea2c.png)](https://liberapay.com/db0/)\n
      \n
      ---
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 866
    +entryCommentCount: 20194
    +postCount: 7
    +postCommentCount: 149
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729581369 {#323
      date: 2024-10-22 09:16:09.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 51
    +apId: "piracy@lemmy.dbzer0.com"
    +apProfileId: "https://lemmy.dbzer0.com/c/piracy"
    +apPublicUrl: "https://lemmy.dbzer0.com/c/piracy"
    +apFollowersUrl: "https://lemmy.dbzer0.com/c/piracy/followers"
    +apInboxUrl: "https://lemmy.dbzer0.com/inbox"
    +apDomain: "lemmy.dbzer0.com"
    +apPreferredUsername: "piracy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1708748229 {#317
      date: 2024-02-24 05:17:09.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1697197339 {#316
      date: 2023-10-13 13:42:19.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    There are some free, open-source command line tools that can do this.\n
    \n
    First off, there’s [exiftool](https://exiftool.org/). It’s the go-to utility to read and write metadata in a wide variety of file types, like mp3, jpg, and you guessed it, pdf. It’s very easy to use:\n
    \n
    To read all the metadata in a file: `exiftool -a -All <file>` (where &lt;file&gt; is the path to your pdf).\n
    \n
    To erase all the metadata in a file: `exiftool -a -All=“” <file>` (that’s two double-quotes, to indicate a blank string). Please note that this will overwrite your file in-place! If you want to save the output as a new file, use `exiftool -a -All=“” -o <output_file> <file>`.\n
    \n
    exiftool is likely all you need for your use case, but if you need more advanced PDF manipulation, with a truly dizzying array of options, there’s [Ghostscript](https://ghostscript.readthedocs.io/en/latest/Use.html). Ghostscript can read, write, and convert PDFs, and provides hooks to apply any PostScript commands and options.\n
    \n
    To simply print out information on a PDF file: `gs -dPDFINFO -dBATCH <file>`. This will show you the metadata, such as author, title, etc.\n
    \n
    I’m…not going to give you an example of how to use Ghostscript to edit metadata because I’m not confident I’d get it right. The gist is that you use PostScript commands with the -c flag. It is truly arcane but extraordinarily powerful.\n
    \n
    If you’re on Linux, you can likely get both of these with your distro’s default package manager. On Mac, use Homebrew or MacPorts. On Windows, you can download prebuilt binaries from their web sites. I think you can even run them on Android using Tmux [Termux](https://termux.dev/en/).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 15
  +score: 0
  +lastActive: DateTime @1711829954 {#1605
    date: 2024-03-30 21:19:14.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1370 …}
  +nested: Doctrine\ORM\PersistentCollection {#1375 …}
  +votes: Doctrine\ORM\PersistentCollection {#2424 …}
  +reports: Doctrine\ORM\PersistentCollection {#1898 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1841 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2354 …}
  -id: 281314
  -bodyTs: "'/).':22 '/en/).':291 '/en/latest/use.html).':154 'advanc':139 'android':285 'appli':166 'arcan':237 'array':146 'author':192 'binari':272 'blank':95 'c':232 'case':133 'command':8,169,229 'confid':216 'convert':160 'd':218 'dbatch':183 'default':257 'distro':255 'dizzi':145 'doubl':90 'double-quot':89 'download':270 'dpdfinfo':182 'easi':53 'edit':210 'eras':76 'etc':194 'even':281 'exampl':203 'exiftool':19,64,83,120,124 'exiftool.org':21 'exiftool.org/).':20 'extraordinarili':239 'file':40,63,68,82,104,118,180 'first':15 'flag':233 'free':4 'get':219,249 'ghostscript':151,155,208 'ghostscript.readthedocs.io':153 'ghostscript.readthedocs.io/en/latest/use.html).':152 'gist':223 'give':200 'go':27,198 'go-to':26 'gs':181 'guess':47 'homebrew':263 'hook':164 'in-plac':105 'indic':93 'inform':176 'jpg':44 'like':42,126,248 'line':9 'linux':245 'm':196,214 'mac':261 'macport':265 'manag':259 'manipul':141 'metadata':34,60,79,189,211 'mp3':43 'need':129,137 'new':117 'note':98 'o':123 'open':6 'open-sourc':5 'option':148,171 'output':114 'overwrit':102 'packag':258 'path':71 'pdf':49,74,140,179 'pdfs':161 'place':107 'pleas':97 'postscript':168,228 'power':240 'prebuilt':271 'print':174 'provid':163 'quot':91 're':243 'read':31,57,157 'right':221 'run':282 'save':112 'show':186 'simpli':173 'site':276 'sourc':7 'string':96 'termux':288 'termux.dev':290 'termux.dev/en/).':289 'think':278 'titl':193 'tmux':287 'tool':10 'truli':144,236 'two':88 'type':41 'use':55,119,132,207,227,262,286 'util':29 'varieti':38 'want':110 'web':275 'wide':37 'window':267 'write':33,158"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6949662"
  +editedAt: DateTimeImmutable @1711788493 {#1377
    date: 2024-03-30 09:48:13.0 +01:00
  }
  +createdAt: DateTimeImmutable @1704417710 {#1927
    date: 2024-01-05 02:21:50.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
4 DENIED moderate
App\Entity\EntryComment {#1365
  +user: Proxies\__CG__\App\Entity\User {#1378 …}
  +entry: App\Entity\Entry {#1810 …}
  +magazine: App\Entity\Magazine {#313
    +icon: Proxies\__CG__\App\Entity\Image {#294 …}
    +name: "piracy@lemmy.dbzer0.com"
    +title: "piracy"
    +description: """
      ##### ⚓ Community devoted to in-depth debate on topics concerning digital piracy, ethical problems, and legal advancements.\n
      \n
      ---\n
      \n
      ### Rules • [Full Version](https://rentry.co/piracy-rules)\n
      \n
      **1**. Posts must be related to the discussion of digital piracy\n
      \n
      **2**. Don’t request invites, trade, sell, or self-promote\n
      \n
      **3**. Don’t request or link to specific pirated titles, including DMs\n
      \n
      **4**. Don’t submit low-quality posts, be entitled, or harass others\n
      \n
      **5**. Don’t post questions already answered. READ THE [WIKI](https://lemmy.dbzer0.com/post/10901)\n
      \n
      ---\n
      \n
      [![](https://a.imagem.app/oZoQ1v.png)](https://lemmy.dbzer0.com/post/10901)\n
      ---------------------------------------------------------------------------\n
      \n
      ### Loot, Pillage, &amp; Plunder\n
      \n
      - [📜 Megathread](https://rentry.co/megathread)\n
      - [🪶 FAQ](https://rentry.co/piracy-faq)\n
      - [🪶 ISP Complaints](https://rentry.co/piracy-isp-complaints)\n
      - [🪶 Rules](https://rentry.co/piracy-rules)\n
      \n
      ---\n
      \n
      💰 Please help cover server costs.\n
      \n
      [![Ko-Fi](https://lemmy.dbzer0.com/pictrs/image/4a2f073a-3dd8-492a-942d-72bd929c9f1d.png)](https://ko-fi.com/dbzer0)[![Liberapay](https://lemmy.dbzer0.com/pictrs/image/eec4659d-39be-4fc9-bc9e-66a96285ea2c.png)](https://liberapay.com/db0/)\n
      \n
      ---
      """
    +rules: null
    +subscriptionsCount: 1
    +entryCount: 866
    +entryCommentCount: 20194
    +postCount: 7
    +postCommentCount: 149
    +isAdult: false
    +customCss: null
    +lastActive: DateTime @1729581369 {#323
      date: 2024-10-22 09:16:09.0 +02:00
    }
    +markedForDeletionAt: null
    +tags: null
    +moderators: Doctrine\ORM\PersistentCollection {#285 …}
    +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
    +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
    +entries: Doctrine\ORM\PersistentCollection {#228 …}
    +posts: Doctrine\ORM\PersistentCollection {#186 …}
    +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
    +bans: Doctrine\ORM\PersistentCollection {#165 …}
    +reports: Doctrine\ORM\PersistentCollection {#151 …}
    +badges: Doctrine\ORM\PersistentCollection {#129 …}
    +logs: Doctrine\ORM\PersistentCollection {#119 …}
    +awards: Doctrine\ORM\PersistentCollection {#108 …}
    +categories: Doctrine\ORM\PersistentCollection {#95 …}
    -id: 51
    +apId: "piracy@lemmy.dbzer0.com"
    +apProfileId: "https://lemmy.dbzer0.com/c/piracy"
    +apPublicUrl: "https://lemmy.dbzer0.com/c/piracy"
    +apFollowersUrl: "https://lemmy.dbzer0.com/c/piracy/followers"
    +apInboxUrl: "https://lemmy.dbzer0.com/inbox"
    +apDomain: "lemmy.dbzer0.com"
    +apPreferredUsername: "piracy"
    +apDiscoverable: true
    +apManuallyApprovesFollowers: null
    +privateKey: null
    +publicKey: null
    +apFetchedAt: DateTime @1708748229 {#317
      date: 2024-02-24 05:17:09.0 +01:00
    }
    +apDeletedAt: null
    +apTimeoutAt: null
    +visibility: "visible             "
    +createdAt: DateTimeImmutable @1697197339 {#316
      date: 2023-10-13 13:42:19.0 +02:00
    }
  }
  +image: null
  +parent: null
  +root: null
  +body: """
    There are some free, open-source command line tools that can do this.\n
    \n
    First off, there’s [exiftool](https://exiftool.org/). It’s the go-to utility to read and write metadata in a wide variety of file types, like mp3, jpg, and you guessed it, pdf. It’s very easy to use:\n
    \n
    To read all the metadata in a file: `exiftool -a -All <file>` (where &lt;file&gt; is the path to your pdf).\n
    \n
    To erase all the metadata in a file: `exiftool -a -All=“” <file>` (that’s two double-quotes, to indicate a blank string). Please note that this will overwrite your file in-place! If you want to save the output as a new file, use `exiftool -a -All=“” -o <output_file> <file>`.\n
    \n
    exiftool is likely all you need for your use case, but if you need more advanced PDF manipulation, with a truly dizzying array of options, there’s [Ghostscript](https://ghostscript.readthedocs.io/en/latest/Use.html). Ghostscript can read, write, and convert PDFs, and provides hooks to apply any PostScript commands and options.\n
    \n
    To simply print out information on a PDF file: `gs -dPDFINFO -dBATCH <file>`. This will show you the metadata, such as author, title, etc.\n
    \n
    I’m…not going to give you an example of how to use Ghostscript to edit metadata because I’m not confident I’d get it right. The gist is that you use PostScript commands with the -c flag. It is truly arcane but extraordinarily powerful.\n
    \n
    If you’re on Linux, you can likely get both of these with your distro’s default package manager. On Mac, use Homebrew or MacPorts. On Windows, you can download prebuilt binaries from their web sites. I think you can even run them on Android using Tmux [Termux](https://termux.dev/en/).
    """
  +lang: "en"
  +isAdult: false
  +favouriteCount: 15
  +score: 0
  +lastActive: DateTime @1711829954 {#1605
    date: 2024-03-30 21:19:14.0 +01:00
  }
  +ip: null
  +tags: null
  +mentions: [
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
    "@sebinspace@lemmy.world"
  ]
  +children: Doctrine\ORM\PersistentCollection {#1370 …}
  +nested: Doctrine\ORM\PersistentCollection {#1375 …}
  +votes: Doctrine\ORM\PersistentCollection {#2424 …}
  +reports: Doctrine\ORM\PersistentCollection {#1898 …}
  +favourites: Doctrine\ORM\PersistentCollection {#1841 …}
  +notifications: Doctrine\ORM\PersistentCollection {#2354 …}
  -id: 281314
  -bodyTs: "'/).':22 '/en/).':291 '/en/latest/use.html).':154 'advanc':139 'android':285 'appli':166 'arcan':237 'array':146 'author':192 'binari':272 'blank':95 'c':232 'case':133 'command':8,169,229 'confid':216 'convert':160 'd':218 'dbatch':183 'default':257 'distro':255 'dizzi':145 'doubl':90 'double-quot':89 'download':270 'dpdfinfo':182 'easi':53 'edit':210 'eras':76 'etc':194 'even':281 'exampl':203 'exiftool':19,64,83,120,124 'exiftool.org':21 'exiftool.org/).':20 'extraordinarili':239 'file':40,63,68,82,104,118,180 'first':15 'flag':233 'free':4 'get':219,249 'ghostscript':151,155,208 'ghostscript.readthedocs.io':153 'ghostscript.readthedocs.io/en/latest/use.html).':152 'gist':223 'give':200 'go':27,198 'go-to':26 'gs':181 'guess':47 'homebrew':263 'hook':164 'in-plac':105 'indic':93 'inform':176 'jpg':44 'like':42,126,248 'line':9 'linux':245 'm':196,214 'mac':261 'macport':265 'manag':259 'manipul':141 'metadata':34,60,79,189,211 'mp3':43 'need':129,137 'new':117 'note':98 'o':123 'open':6 'open-sourc':5 'option':148,171 'output':114 'overwrit':102 'packag':258 'path':71 'pdf':49,74,140,179 'pdfs':161 'place':107 'pleas':97 'postscript':168,228 'power':240 'prebuilt':271 'print':174 'provid':163 'quot':91 're':243 'read':31,57,157 'right':221 'run':282 'save':112 'show':186 'simpli':173 'site':276 'sourc':7 'string':96 'termux':288 'termux.dev':290 'termux.dev/en/).':289 'think':278 'titl':193 'tmux':287 'tool':10 'truli':144,236 'two':88 'type':41 'use':55,119,132,207,227,262,286 'util':29 'varieti':38 'want':110 'web':275 'wide':37 'window':267 'write':33,158"
  +ranking: 0
  +commentCount: 0
  +upVotes: 0
  +downVotes: 0
  +visibility: "visible             "
  +apId: "https://lemmy.sdf.org/comment/6949662"
  +editedAt: DateTimeImmutable @1711788493 {#1377
    date: 2024-03-30 09:48:13.0 +01:00
  }
  +createdAt: DateTimeImmutable @1704417710 {#1927
    date: 2024-01-05 02:21:50.0 +01:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS DENIED
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details
5 DENIED edit
App\Entity\Magazine {#313
  +icon: Proxies\__CG__\App\Entity\Image {#294 …}
  +name: "piracy@lemmy.dbzer0.com"
  +title: "piracy"
  +description: """
    ##### ⚓ Community devoted to in-depth debate on topics concerning digital piracy, ethical problems, and legal advancements.\n
    \n
    ---\n
    \n
    ### Rules • [Full Version](https://rentry.co/piracy-rules)\n
    \n
    **1**. Posts must be related to the discussion of digital piracy\n
    \n
    **2**. Don’t request invites, trade, sell, or self-promote\n
    \n
    **3**. Don’t request or link to specific pirated titles, including DMs\n
    \n
    **4**. Don’t submit low-quality posts, be entitled, or harass others\n
    \n
    **5**. Don’t post questions already answered. READ THE [WIKI](https://lemmy.dbzer0.com/post/10901)\n
    \n
    ---\n
    \n
    [![](https://a.imagem.app/oZoQ1v.png)](https://lemmy.dbzer0.com/post/10901)\n
    ---------------------------------------------------------------------------\n
    \n
    ### Loot, Pillage, &amp; Plunder\n
    \n
    - [📜 Megathread](https://rentry.co/megathread)\n
    - [🪶 FAQ](https://rentry.co/piracy-faq)\n
    - [🪶 ISP Complaints](https://rentry.co/piracy-isp-complaints)\n
    - [🪶 Rules](https://rentry.co/piracy-rules)\n
    \n
    ---\n
    \n
    💰 Please help cover server costs.\n
    \n
    [![Ko-Fi](https://lemmy.dbzer0.com/pictrs/image/4a2f073a-3dd8-492a-942d-72bd929c9f1d.png)](https://ko-fi.com/dbzer0)[![Liberapay](https://lemmy.dbzer0.com/pictrs/image/eec4659d-39be-4fc9-bc9e-66a96285ea2c.png)](https://liberapay.com/db0/)\n
    \n
    ---
    """
  +rules: null
  +subscriptionsCount: 1
  +entryCount: 866
  +entryCommentCount: 20194
  +postCount: 7
  +postCommentCount: 149
  +isAdult: false
  +customCss: null
  +lastActive: DateTime @1729581369 {#323
    date: 2024-10-22 09:16:09.0 +02:00
  }
  +markedForDeletionAt: null
  +tags: null
  +moderators: Doctrine\ORM\PersistentCollection {#285 …}
  +ownershipRequests: Doctrine\ORM\PersistentCollection {#281 …}
  +moderatorRequests: Doctrine\ORM\PersistentCollection {#270 …}
  +entries: Doctrine\ORM\PersistentCollection {#228 …}
  +posts: Doctrine\ORM\PersistentCollection {#186 …}
  +subscriptions: Doctrine\ORM\PersistentCollection {#248 …}
  +bans: Doctrine\ORM\PersistentCollection {#165 …}
  +reports: Doctrine\ORM\PersistentCollection {#151 …}
  +badges: Doctrine\ORM\PersistentCollection {#129 …}
  +logs: Doctrine\ORM\PersistentCollection {#119 …}
  +awards: Doctrine\ORM\PersistentCollection {#108 …}
  +categories: Doctrine\ORM\PersistentCollection {#95 …}
  -id: 51
  +apId: "piracy@lemmy.dbzer0.com"
  +apProfileId: "https://lemmy.dbzer0.com/c/piracy"
  +apPublicUrl: "https://lemmy.dbzer0.com/c/piracy"
  +apFollowersUrl: "https://lemmy.dbzer0.com/c/piracy/followers"
  +apInboxUrl: "https://lemmy.dbzer0.com/inbox"
  +apDomain: "lemmy.dbzer0.com"
  +apPreferredUsername: "piracy"
  +apDiscoverable: true
  +apManuallyApprovesFollowers: null
  +privateKey: null
  +publicKey: null
  +apFetchedAt: DateTime @1708748229 {#317
    date: 2024-02-24 05:17:09.0 +01:00
  }
  +apDeletedAt: null
  +apTimeoutAt: null
  +visibility: "visible             "
  +createdAt: DateTimeImmutable @1697197339 {#316
    date: 2023-10-13 13:42:19.0 +02:00
  }
}
"Scheb\TwoFactorBundle\Security\Authorization\Voter\TwoFactorInProgressVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\EntryVoter"
ACCESS ABSTAIN
"App\Security\Voter\MagazineVoter"
ACCESS DENIED
"App\Security\Voter\MessageThreadVoter"
ACCESS ABSTAIN
"App\Security\Voter\MessageVoter"
ACCESS ABSTAIN
"App\Security\Voter\NotificationVoter"
ACCESS ABSTAIN
"App\Security\Voter\OAuth2UserConsentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostCommentVoter"
ACCESS ABSTAIN
"App\Security\Voter\PostVoter"
ACCESS ABSTAIN
"App\Security\Voter\UserVoter"
ACCESS ABSTAIN
Show voter details