PHPackages                             antoineaugusti/pdfarchiver - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [File &amp; Storage](/categories/file-storage)
4. /
5. antoineaugusti/pdfarchiver

ActiveLibrary[File &amp; Storage](/categories/file-storage)

antoineaugusti/pdfarchiver
==========================

Archive locally generated PDFs to a remote host

v1.1(11y ago)1481MITPHPPHP &gt;= 5.4.0

Since Jan 24Pushed 11y ago1 watchersCompare

[ Source](https://github.com/AntoineAugusti/PdfArchiver)[ Packagist](https://packagist.org/packages/antoineaugusti/pdfarchiver)[ RSS](/packages/antoineaugusti-pdfarchiver/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (2)Versions (7)Used By (0)

PdfArchiver
===========

[](#pdfarchiver)

[![Software License](https://camo.githubusercontent.com/f251623e510f5909f16ae3f4e6e548dac11340b9fde1a99be26b015b39272c00/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d627269676874677265656e2e7376673f7374796c653d666c6174)](LICENSE.md)[![Latest Version](https://camo.githubusercontent.com/1cd7e1c037208b9a610060a33aa4e04b22089f665808f21d18ab666e6f40f658/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f416e746f696e65417567757374692f50646641726368697665722e7376673f7374796c653d666c6174)](https://github.com/AntoineAugusti/PdfArchiver/releases)

What's the goal?
----------------

[](#whats-the-goal)

The goal is to easily archive generated PDF documents from one location (the "local" location) to another location (the "remote" one).

Let's say we have a local architecture like this:

```
company/
├── first-folder
│   ├── makefile
│   ├── document.tex
│   ├── pdf
│   │   └── document.pdf
│   └── report
│       ├── makefile
│       ├── report.tex
│       └── pdf
│           └── report.pdf
├── second-folder
│   ├── makefile
│   ├── reporting.tex
│   └── pdf
│       └── reporting.pdf
└── dummy

```

We will transfer PDF files to the remote filesystem with this architecture:

```
company/
├── first-folder
│   ├── document.pdf
│   └── report
│       ├── report.pdf
├── second-folder
│   ├── reporting.pdf

```

You **don't need** to create sub directories on the remote filesytem, they will automatically be created when copying PDF files to the remote filesystem.

Installation
------------

[](#installation)

[PHP](https://php.net) 5.4+ or [HHVM](http://hhvm.com) 3.2+, and [Composer](https://getcomposer.org) are required.

To get the latest version of PdfArchiver, just run the following command from your Terminal:

```
$ composer require antoineaugusti/pdfarchiver
```

And then pull the dependencies with the following command:

```
$ composer install
```

Filesystem adapters
-------------------

[](#filesystem-adapters)

PdfArchiver relies on the awesome [Flysystem package from The PHP League](http://flysystem.thephpleague.com). A lot of adapters are available in the documentation. Determine which adapters you'll need for your local and remote filesystems and then let the `Antoineaugusti\PdfArchiver\Console\MoverCommand` class do the work for you.

### Example: local filesystem to SFTP server

[](#example-local-filesystem-to-sftp-server)

For example, let's say you want to move generated PDFs from your local machine to a SFTP server. An example is given [here](examples/local-sftp.php).

Steal the example file and place it at the root of this directory. Replace configuration values with your needs and you're good to go.

**Don't forget to add dependencies for your adapters** in your `composer.json` file and then run `composer update`.

How to run
----------

[](#how-to-run)

*`commands` is the file placed at the root of this directory where you have previously wired your adapters to the MoverCommand class*.

Once you've chosen the right adapters (don't forget to pull dependencies with `composer update`) and you've set your configuration values, it will be very easy. The `Antoineaugusti\PdfArchiver\Console\MoverCommand` class will search recursively from the root folder you have defined in your local adapter with the following command:

```
$ php commands archive
```

### Starting from a subfolder

[](#starting-from-a-subfolder)

If you don't want to start at the defined root folder, but somewhere else, just give the relative path as the first argument:

```
$ php commands archive example/subfolder
```

### Generating PDF files

[](#generating-pdf-files)

Since we are relying on the existence of a `makefile` and `pdf` folder, you may want to generate your PDF files before moving them to a remote location. Just pass the option `--make` when calling the script:

```
$ php commands archive example/subfolder --make
```

Contributing
------------

[](#contributing)

Contributions are very welcome. This package is pretty simple right now and it only suits my needs. Feel free to open a PR to add some options or additional behavior!

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity10

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~17 days

Total

6

Last Release

4035d ago

Major Versions

v0.2 → v1.0-RC12015-02-06

### Community

Maintainers

![](https://www.gravatar.com/avatar/bd9d5a56cb260e00c6d1963f9ba430b351227b65fe02ab535960d3b70ff35075?d=identicon)[AntoineAugusti](/maintainers/AntoineAugusti)

---

Top Contributors

[![AntoineAugusti](https://avatars.githubusercontent.com/u/295709?v=4)](https://github.com/AntoineAugusti "AntoineAugusti (12 commits)")

---

Tags

filesystemFlysystemdocumentsarchiver

### Embed Badge

![Health badge](/badges/antoineaugusti-pdfarchiver/health.svg)

```
[![Health](https://phpackages.com/badges/antoineaugusti-pdfarchiver/health.svg)](https://phpackages.com/packages/antoineaugusti-pdfarchiver)
```

###  Alternatives

[league/flysystem-aws-s3-v3

AWS S3 filesystem adapter for Flysystem.

1.6k263.6M787](/packages/league-flysystem-aws-s3-v3)[league/flysystem-local

Local filesystem adapter for Flysystem.

226231.8M39](/packages/league-flysystem-local)[oneup/flysystem-bundle

Integrates Flysystem filesystem abstraction library to your Symfony project.

64422.9M65](/packages/oneup-flysystem-bundle)[league/flysystem-bundle

Symfony bundle integrating Flysystem into Symfony applications

40029.5M87](/packages/league-flysystem-bundle)[league/flysystem-sftp-v3

SFTP filesystem adapter for Flysystem.

6129.6M91](/packages/league-flysystem-sftp-v3)[league/flysystem-memory

In-memory filesystem adapter for Flysystem.

8533.6M194](/packages/league-flysystem-memory)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
