1. Go to this page and download the library: Download schrojf/laravel-papers library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Schrojf\Papers\Papers;
use App\Papers\MyReportPaper;
public function boot(): void
{
Papers::register([
MyReportPaper::class,
]);
}
use Illuminate\Support\Facades\Gate;
use App\Models\User;
public function boot(): void
{
Gate::define('viewPapers', function (User $user) {
return in_array($user->email, [
'[email protected]',
]);
});
}
namespace App\Papers;
use RuntimeException;
use Schrojf\Papers\Contents\DataPanelContent;
use Schrojf\Papers\Contents\TableContent;
use Schrojf\Papers\Paper;
class DemoPaper extends Paper
{
public static $description = 'This is a demo paper showing various content types.';
public function sections(): array
{
return [
'Simple Text' => fn () => ['Hello', 'World!'],
'Empty' => function () {
return null;
},
'With function call' => function () {
$rand = rand(1, 100);
return 'Random number: ' . $rand;
},
'Table Example' => fn () => [
'This section demonstrates a responsive table.',
TableContent::withHeaders(['ID', 'Name', 'Status', 'Score'])
->row([1, 'Alice', 'Active', 85])
->row([2, 'Bob', null, 92])
->row([3, 'Charlie', 'Inactive', null])
->row([4, null, 'Active', 78]),
],
'Section with Data Panel Component' => function () {
return DataPanelContent::make()
->title('User Profile')
->item('Name', 'Jane Doe')
->item('Email', '[email protected]')
->item('Phone', '+1 234 567 8901')
->item('Role', 'Administrator')
->item('Status', 'Active');
},
'Info' => function () {
return 'Next section will raise an exception and the Report section will not be run.';
},
'Exception Demo' => function () {
throw new RuntimeException('This is a simulated error.');
},
'Unreachable Section' => fn () => 'This will not be rendered if the previous section fails.',
];
}
}