Generate a PDF with PHP

  Рет қаралды 57,891

Dave Hollingworth

Dave Hollingworth

Күн бұрын

Learn how to generate a PDF file using PHP.
PDF files are useful because the formatting is always reliable - its contents will always display in exactly the same way no matter where you are viewing it.
Full PHP course:
➤ davehollingworth.net/phpy
Please consider supporting my channel:
☕ ko-fi.com/davehollingworth
In this video you'll learn how to:
• use the Dompdf library to generate a PDF file
• make the browser download the file or open it inline
• add styling to the PDF content
• insert images
• insert user-supplied, dynamic content
• use inline, embedded and external CSS for styling
• save the generated PDF file locally
Also learn how to easily fix the common Dompdf problem when inserting images: "Image not found or type unknown".
Code shown in the video:
‣ gist.github.com/daveh/88ff8c5...
Dompdf package:
‣ github.com/dompdf/dompdf
Sample image:
‣ en.wikipedia.org/wiki/Service...
Thumbnail icon:
‣ www.flaticon.com/free-icons/pdf
CSS:
‣ watercss.kognise.dev/
‣ github.com/BafS/Gutenberg
00:00 Introduction
00:35 Install Dompdf
01:02 Basic PDF generation
02:49 Change PDF filename
03:25 Display PDF inline
04:21 Styling and layout
05:23 Images
06:14 Setting options 1
06:47 Setting options 2
07:36 Setting page options
08:16 Document metadata
09:08 Create the form
10:11 Classless CSS
10:42 Dynamic data
11:55 HTML template
16:19 Using CSS
17:52 Enable remote resources
18:13 Save PDFs locally
18:59 Summary
#PHP #PDF

Пікірлер: 131
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
What other techniques would you like to see a video on?
@efbYouTube
@efbYouTube 2 жыл бұрын
text manipulation on existing pdfs either using fillable fields &/or text created by acrobat "fill & sign tool" (if possible). i found another vid using PDFtk for fillable but always curious to get yr thoughts on it! again txs 4 these great videos! REALLY appreciated!!
@catsapp
@catsapp 2 жыл бұрын
dating website )
@kunyuchang
@kunyuchang 2 жыл бұрын
export excel
@rizwanyousaf994
@rizwanyousaf994 Жыл бұрын
generate pdf without using composer..?
@s2003katalin
@s2003katalin Жыл бұрын
A nice add-on to this great video would be to demonstrate how to embed images uploaded via a form, similar to the one used in the video, in a pdf using dompdf. Subscribing for this one! Thank you!
@alnahian2003
@alnahian2003 Жыл бұрын
Not gonna lie, You are the most nicest PHP instructor I've ever met in my life! Your building REST Api, MVC Framework in PHP tuts are still relevant. Love your calm and smooth informative contents. Keep them coming 😀
@dave-hollingworth
@dave-hollingworth Жыл бұрын
Thank you so much for your kind comments!
@yacoubasawadogo8225
@yacoubasawadogo8225 10 ай бұрын
Undoubtedly the best PHP instructor, making the trickiest PHP concepts feel as easy as ABC when you explain them. ❤
@dawnstar24
@dawnstar24 3 ай бұрын
This is the part i like about web dev. You teach a variety of things. Not just the basics. On my first internship i was asked to put capcha on a form. It took me few days It was sorta overwhelming because. Because in courses they just teach you the basics Which are not remotely close to real world scenarios.
@collenzaligway4458
@collenzaligway4458 2 жыл бұрын
Nice video, comprehensible and straight to the point. Please upload more. You really help a lot of junior developer. Cheers.
@abanwaraphael1526
@abanwaraphael1526 Жыл бұрын
Thank you Dave. You're very knowledgeable on PHP.
@OnyeStephen
@OnyeStephen Жыл бұрын
Please make a tutoprial series on PHP object oriented programming, I really love the way you explain things
@codeclassroom
@codeclassroom 2 жыл бұрын
Hi ! You always give us better understanding. Thanks for this video.
@inamrasluzd6524
@inamrasluzd6524 2 жыл бұрын
I wish I can create a million more accounts just to give you the like! You are too awesome, Dave. You're my favourite teacher.
@giorgiobarone9784
@giorgiobarone9784 2 жыл бұрын
Thank you Dave, another great apportation! As always...!
@gensys244
@gensys244 2 жыл бұрын
great a clear and easy to understand video thank you so much. Would love to see a more complex form with lots of boxes and lines and shading.
@GeorgeRoman
@GeorgeRoman 3 ай бұрын
Let me told you something DAVE, "YOU ARE AWESOME TEACHER". Congratulations...Regards from Mexico.
@ilyamur885
@ilyamur885 2 жыл бұрын
Dave, we are still waiting your new frameworks courses. You are awesome teacher!
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
Thank you! Working on it!
@efbYouTube
@efbYouTube 2 жыл бұрын
excellent AS ALWAYS!! txs also 4 introducing water & gutenburg css!!
@tempMahad
@tempMahad Жыл бұрын
This is the video I was looking for
@someutubchannel69
@someutubchannel69 2 жыл бұрын
Dave, Your a Master of Masters...
@oscaralba5546
@oscaralba5546 Жыл бұрын
Excelent dave. Thank you again
@julienbonnier
@julienbonnier Жыл бұрын
Great tuto! Thanks mate!
@AliRianiDeO
@AliRianiDeO 2 жыл бұрын
Mpdf, emailing a pdf, logging into db, a more complex invoice with a twig/blade template and multiple elements, etc. But at the end of the day you are the best, as always thanks.
@dominikkaminski4600
@dominikkaminski4600 2 жыл бұрын
excelent work Mate! :) thank you!
@alanwilliams8622
@alanwilliams8622 Жыл бұрын
Excellent , thanks
@djbenieuganda8850
@djbenieuganda8850 7 ай бұрын
thanks it was been really nice
@cypriankimutai752
@cypriankimutai752 Жыл бұрын
nice video.straight
@laughandlivemixedcontentzo396
@laughandlivemixedcontentzo396 Жыл бұрын
Liked you video I am learning at very short time
@batchrocketproject4720
@batchrocketproject4720 Жыл бұрын
Thanks, really useful and well explained. I'll be experimenting with this as my case use was not covered. I'd like to batch convert several html files to pdfs and will try executing a suitable php script in bash without using a browser. It will depend on domphp having its own pdf creator rather than borrowing browser functionality.
@RajibAhmad
@RajibAhmad Жыл бұрын
very good tutorial....
@jacobml4885
@jacobml4885 Жыл бұрын
Thank you 😊💕
@ilya_123__
@ilya_123__ Жыл бұрын
Thank you!!!!!
@mshahid170
@mshahid170 11 ай бұрын
Very Nice
@emperoroftheearth3215
@emperoroftheearth3215 Жыл бұрын
Thanks
@efbYouTube
@efbYouTube 2 жыл бұрын
Thanks!
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
Thank you so much! I really appreciate it! 😀
@secret_one
@secret_one 2 жыл бұрын
Nicely done Dave. I loaded using composer, but it is using an older version as I have to use add_info instead of addInfo. I thought that composer gets the latest version?
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
Good catch! You're right, Composer will get the latest version. The addInfo method will be added in the next release, so I was basically future-proofing the video ;-)
@craigc5879
@craigc5879 2 жыл бұрын
Another excellent video.... how about a video on something like twig?
@BaadAsS
@BaadAsS Жыл бұрын
Hi Dave, This is a very intuitive video and is helping me understand a lot more things about generating a PDF, I do have one question though...All of my data is being processed into a template.php file, so is it possible to pass my template.php through to the file_get_contents or is there another method to do so? Regards, Mark.
@dave-hollingworth
@dave-hollingworth Жыл бұрын
I'm not sure what you mean - if you load a script using file_get_contents, then it won't be executed, you'll get the raw PHP code
@NedumEze
@NedumEze Жыл бұрын
Thank you very much, Dave. Just wondering whether you could consider doing another version of this Tutorial, showing how clicking a pdf link in a web page can download a pdf version of the html web page.
@dave-hollingworth
@dave-hollingworth Жыл бұрын
Interesting idea, I'll make a note of it, thanks!
@srdjanstankovic4098
@srdjanstankovic4098 Жыл бұрын
Hi Dave, I would like to see spinner on input site while downloading PDF. Spinner should prevent user to input values into fields while downloading.
@parijke
@parijke 2 жыл бұрын
Hi Dave nice. Why choose dompdf instead of mpdf for example?
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
I looked at mpdf before I made the video, but decided not to use it as it's quite dated, and doesn't support modern CSS. More details here: github.com/mpdf/mpdf#about-css-support-and-development-state
@spifferlasting
@spifferlasting 9 ай бұрын
Very good video! One question: how to install Dompdf without composer? Very few of the projects I work on use composer or git. Zero. Thanks in advance.
@dave-hollingworth
@dave-hollingworth 9 ай бұрын
Try downloading the package files from the repository directly and saving them into the vendor folder
@TheJohcker
@TheJohcker 2 жыл бұрын
awesome
@catsapp
@catsapp 2 жыл бұрын
Thank s
@windows-rdp4736
@windows-rdp4736 6 ай бұрын
Hello mate , thanks for this amazing tutorial my question is why after i downloaded the PHP Library via ZIP im unable to locate AUTOLOAD file its not included in the zip and my hosting doesnt allow executing Composer what should i do ? thanks
@dave-hollingworth
@dave-hollingworth 6 ай бұрын
You can run Composer locally to generate the required files, then just upload the entire vendor folder
@ismahhjohny8765
@ismahhjohny8765 3 ай бұрын
Hi there, I just saw this video. Can you please explain more on how you install the dompdf and what platform do you use to write the coding? Is it Visual studio code?
@dave-hollingworth
@dave-hollingworth 3 ай бұрын
You need to install Composer, which you can get from getcomposer.org/. (you need PHP installed first) I use Visual Studio Code yes, although for the videos it's a minimal version so it's simpler to understand when I'm explaining something.
@MMH94MMH
@MMH94MMH Жыл бұрын
Thanks for this video, Does this library support Arabic language and accented letters? And can i use composer autoloader for TCPDF library, am not using any framework would be that a problem?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
It should support them yes, as HTML does (I've never tried Arabic though). You can use packages without a framework with no problems. yes.
@MMH94MMH
@MMH94MMH Жыл бұрын
@@dave-hollingworth thanks for your answer i appreciate it 👍🏻
@NedumEze
@NedumEze 2 жыл бұрын
Amazing! I have been seeking something like dompdf that will, when a User clicks a button on a web page, will convert the page to pdf and download it to the User's Browser. But it seems that Dompdf cannot foot the bill. Since it can convert only html files. Our web pages are mostly .php files.
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
You could run the PHP and pass its output (assuming this is HTML) to Dompdf
@NedumEze
@NedumEze 2 жыл бұрын
@@dave-hollingworth The web page is the output of the php script. True. It should work. Can I name my web page output with .html extension instead of .php? Would it work?
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
@@NedumEze If the output is just HTML, then yes, you can name it with the .html extension. If you want the code to be run as PHP though, (i.e. if it contains PHP code) it needs to have the .php extension.
@NedumEze
@NedumEze 2 жыл бұрын
@@dave-hollingworth Thanks Dave. I'll have to give it whirl to see what's possible and what's not.
@mmcool
@mmcool 10 ай бұрын
idont get thoes lines, even if i copypase your hole code. i also downloaded gutenberg and linked it localy and no change. just wondering why
@TheGarageboyz
@TheGarageboyz Жыл бұрын
Great video! Thanks! Is it possible to lock and save the pdf’s to my server?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
Saving PDFs on the server is covered at the end of the video; I haven't done it, but I imagine you can lock a PDF by setting an option
@karthikand_
@karthikand_ 2 ай бұрын
i am good until what you tought, can you please help me on how to pull data from data base table and show in a table format. thank you in advance..
@HAMOSHE
@HAMOSHE 8 ай бұрын
Nice video, i have no experience in php so i downloaded the source code and ran it on a php server, it just doesn't work for some reason when i put the name and quantity in the HTML page it takes me to a white page with errors in it, is this fixable?
@dave-hollingworth
@dave-hollingworth 8 ай бұрын
You need to use Composer to install the third-party package that generates the PDF - see the first part of the video for more details
@devhenry9054
@devhenry9054 2 жыл бұрын
Can you please make a laravel course like you have made a codeigniter course on udemy. With some real project like blog and admin panel. Thanks
@truthteachers
@truthteachers Жыл бұрын
Bro, its a great course. I have a problem. At timestamp 18:12, the cdn for gutenberg does not seem to work. The pdf is not formatted.
@dave-hollingworth
@dave-hollingworth Жыл бұрын
You can get the latest CDN URL from the repo linked to in the description: github.com/BafS/Gutenberg#cdn
@truthteachers
@truthteachers Жыл бұрын
@@dave-hollingworth I am using the latest. The odd thing is that it seems to with the raw html script but not with dompdf.
@dave-hollingworth
@dave-hollingworth Жыл бұрын
@@truthteachers That's odd - try downloading the CSS locally, see if that fixes it.
@petruciucur
@petruciucur Жыл бұрын
Excelent tutorial ! Is it possible to use dompdf to send the generated pdf in an email?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
Not with dompdf, but you could use PHPMailer to send the generated PDF as an attachment (I'll be doing a video on this soon!)
@petruciucur
@petruciucur Жыл бұрын
@@dave-hollingworth Awesome, thanks a lot !
@IniMedia
@IniMedia 8 ай бұрын
like it
@kikowyntech3442
@kikowyntech3442 Жыл бұрын
hi sir.. do you have a simple ticketing system atleast running on lan connection only..
@dave-hollingworth
@dave-hollingworth Жыл бұрын
No, but it looks like there are several available: www.google.co.uk/search?q=php+ticketing+system
@samuelsituma8846
@samuelsituma8846 Жыл бұрын
Nice video but how can we use dompdf to print questions that have math equations using mathjax
@dave-hollingworth
@dave-hollingworth Жыл бұрын
github.com/dompdf/dompdf/issues/2276
@MMH94MMH
@MMH94MMH Жыл бұрын
How to fill in an existing PDF template, using php ? is there any free libraries for that?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
There's a thread here which discusses various options for that: stackoverflow.com/questions/7364/edit-pdf-en-php
@marlonrettis5009
@marlonrettis5009 Жыл бұрын
Im getting an error i new Options line 12 of your file.. now sure why
@GoodLifeFilms3000
@GoodLifeFilms3000 Жыл бұрын
How would you base64 enocde this PDF without downloading the file first?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
You could read the file into a string (using file_get_contents for example) then base64 encode that string
@sarabibrahim8312
@sarabibrahim8312 Жыл бұрын
Can you add a video for downloading pdf file using php myadmin
@rasalas91
@rasalas91 2 жыл бұрын
Great content as always. I was kinda scared of creating PDFs - the DOMPDF package seems to make it really easy. Love that it uses HTML and CSS - the other packages seemed to require me to draw on a canvas, which would've complicated things a lot. Thank you! ------ ...do you know any trick to "translate" old bad PHP-Code to more readable code? I took over code of someone who wasn't really taught as it seems. The whole code consists of: basically without any real html and indentation is a myth (and no classes and very few imports (obviously no autoload or composer). Everything in one file (ok, it's three, but they're huge) - but that's another problem). I added new stuff - but I'm breaking consistency and since I'm still learning myself, it changes... Are there any best practices for this? Maybe steps to prevent rewriting the whole thing from the ground up? Should I copy the bad patterns? (it's pretty big - and it's not 100% clear which pages are still being used regularly)
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
I recommend these two resources: phptherightway.com/ and phpbestpractices.org/
@dragonarc_gaming
@dragonarc_gaming 6 ай бұрын
Can I get some help? I was following all the codes written until I reached the image part. The image is not showing at all even after doing the option 1 and 2. Do I need to add something else to make it work? Every videos all said I need to do $options->set('isRemoteEnabled', true); but even that doesn't seem to fix it. Totally stuck right now
@dave-hollingworth
@dave-hollingworth 6 ай бұрын
Do you get any error messages at all? Try it with a different image format, or move the image to the same folder as the PHP script
@dragonarc_gaming
@dragonarc_gaming 6 ай бұрын
@@dave-hollingworth I was doing it on a ci4 project. I don't have any error message at all other than the "Image not found or type unknown" that was written on the page. I tried moving the picture to the root folder and it didn't work. Move it to the controller and to the public also doesn't work. Tried using different image (png and jpeg) but none works.
@dave-hollingworth
@dave-hollingworth 6 ай бұрын
@@dragonarc_gaming All I can think of is that it's a problem with the image not being found, or permissions that don't allow it to be read - can you try an absolute path to the image file, and make sure it's readable?
@dragonarc_gaming
@dragonarc_gaming 6 ай бұрын
@@dave-hollingworthI tried absolute path but it didn't work. How to check it's readable? Using it on the normal php ? If so then yes it did work when not using dompdf
@dave-hollingworth
@dave-hollingworth 6 ай бұрын
@dragonarc_gaming A bit difficult to debug further without being able to run it myself - have you tried running the code from the video without altering it maybe?
@iLuvHardStyle
@iLuvHardStyle 3 күн бұрын
I'm to dumb to make this work on my app... keep getting failed to load pdf errors 😅
@wisdomkalu2130
@wisdomkalu2130 2 жыл бұрын
Wonderful tutorial and easy to follow. I wanted to know how you can work with setChroot() when using the MVC model. In your example, all the files are in one root directory (vendor) which makes it easy to use __DIR__. In my case, my images file and CSS files are in different directories. How do I set the root so that everything works well?
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
You can set the root to the parent folder of the images and CSS files, using the dirname function with __DIR__ if you like - so dirname(__DIR__) would be the parent folder of the current folder, dirname(dirname(__DIR__)) the parent folder of that and so on.
@wisdomkalu2130
@wisdomkalu2130 Жыл бұрын
@@dave-hollingworth Thanks so much, Dave. It works perfectly. I encountered another error, though. The page is not rendering properly when converted to pdf. All the styling is broken, and elements are scattered. The text and images are all displaying, but the formatting of the page is now messed up. Any fix for this?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
@@wisdomkalu2130 It sounds like it's not loading the stylesheet. Try checking the paths, or moving the stylesheet to another location (it could be file permissions on the file too)
@wisdomkalu2130
@wisdomkalu2130 Жыл бұрын
@@dave-hollingworth Thanks for your time. My stylesheet is Bootstrap. Could that be the issue? Is there an alternate way of achieving the same result if Dompdf does not support Bootstrap?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
@@wisdomkalu2130 It could be that they're not compatible, although I would check that it's being loaded correctly (I'm afraid I don't use Bootstrap) - try loading it locally instead of from a remote server, see if that makes a difference.
@ArielClemente-bv2qu
@ArielClemente-bv2qu Жыл бұрын
How could I convert a web page which was created automatically loaded from $_REQUEST routine?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
You can pass a string to the library that creates the PDF (if that's what you mean)
@user-up4ld8mt3n
@user-up4ld8mt3n 6 ай бұрын
error: Root package 'dompdf/dompdf' cannot require itself in its composer.json what's the matter pls
@dave-hollingworth
@dave-hollingworth 6 ай бұрын
What command are you using to require that package? It should be "composer require"
@szaszattila9406
@szaszattila9406 Жыл бұрын
can i use bootstrap for styling?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
There's a thread that discusses that here: stackoverflow.com/questions/29985728/how-to-apply-bootstrap-style-in-dompdf
@ABGTronic_Inc
@ABGTronic_Inc Жыл бұрын
what version of PHP is requirement for this method?
@dave-hollingworth
@dave-hollingworth Жыл бұрын
The latest version if possible, if not at least version 8
@babolokichibane8917
@babolokichibane8917 Жыл бұрын
Hi Dave thanks for the video. I am using MacOS and i get a fatal error Warning: require(/Applications/MAMP/htdocs/generatepdf/vendor/autoload.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/generatepdf/generate-pdf.php on line 3 Fatal error: require(): Failed opening required '/Applications/MAMP/htdocs/generatepdf/vendor/autoload.php' (include_path='.:/Applications/MAMP/bin/php/php7.4.21/lib/php') in /Applications/MAMP/htdocs/generatepdf/generate-pdf.php on line 3 Please help.
@dave-hollingworth
@dave-hollingworth Жыл бұрын
What code is on the line that's generating that error? Also, when you installed the package using Composer, did you do it in the same folder as your code, and did it install without any errors?
@shiriajin
@shiriajin 2 жыл бұрын
Man, I love your videos and I wish your videos on Udemy have the same quality. In Udemy, all the steps where you actually add the code are edited out (you don’t show when you type the code). This is very distracting and means that the user has to pause longer than usual to follow what you’re doing.
@dave-hollingworth
@dave-hollingworth 2 жыл бұрын
Thank you for the feedback, yes I'm working on that - newer courses and when I update old ones will use this improved technique
@fahiyangtech
@fahiyangtech Жыл бұрын
Request using excel 🙏
@glamourbytetechnologies6744
@glamourbytetechnologies6744 28 күн бұрын
Uncaught Error: Call to undefined method Dompdf\Dompdf::addInfo()
@dave-hollingworth
@dave-hollingworth 27 күн бұрын
Which version of Dompdf are you using?
@SHADOW6_STRIKE7
@SHADOW6_STRIKE7 Жыл бұрын
How to give write permission
@dave-hollingworth
@dave-hollingworth Жыл бұрын
It depends on your operating system
@SHADOW6_STRIKE7
@SHADOW6_STRIKE7 Жыл бұрын
@@dave-hollingworth mine was ubuntu,, i give it by on properties, read and write permission on
@dave-hollingworth
@dave-hollingworth Жыл бұрын
@@SHADOW6_STRIKE7 Try giving the same permissions on the parent folder of the one you want to write to. You can also do it on the command line with this: chmod -R 777 path/to/parent/folder
How to call APIs from PHP: file_get_contents, cURL, Guzzle and SDKs
25:14
Dave Hollingworth
Рет қаралды 40 М.
Signup and Login with PHP and MySQL
43:16
Dave Hollingworth
Рет қаралды 270 М.
I wish I could change THIS fast! 🤣
00:33
America's Got Talent
Рет қаралды 73 МЛН
Homemade Professional Spy Trick To Unlock A Phone 🔍
00:55
Crafty Champions
Рет қаралды 58 МЛН
⬅️🤔➡️
00:31
Celine Dept
Рет қаралды 48 МЛН
Generate PDF files in Laravel 11 using DomPDF Package
15:50
Error Solution
Рет қаралды 1,6 М.
Send email with PHP | Create a Working Contact Form Using PHP
10:18
Dave Hollingworth
Рет қаралды 128 М.
Create PDF files from HTML using PHP and mPDF | Quick programming tutorial
29:33
PHP is the future
34:27
Aaron Francis
Рет қаралды 168 М.
Git MERGE vs REBASE
16:12
Academind
Рет қаралды 1 МЛН
Securely Storing PHP Configuration Settings
7:20
Dave Hollingworth
Рет қаралды 6 М.
How To Fill A Fillable PDF Form with PHP using PDFtk
29:51
Mr Digital
Рет қаралды 34 М.
Creating Dynamic PDF file in PHP and HTML
33:33
Vicode Media
Рет қаралды 42 М.
iPhone 12 socket cleaning #fixit
0:30
Tamar DB (mt)
Рет қаралды 52 МЛН
Игровой Комп с Авито за 4500р
1:00
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 629 М.
Урна с айфонами!
0:30
По ту сторону Гугла
Рет қаралды 7 МЛН
Samsung S24 Ultra professional shooting kit #shorts
0:12
Photographer Army
Рет қаралды 32 МЛН
Asus  VivoBook Винда за 8 часов!
1:00
Sergey Delaisy
Рет қаралды 1,1 МЛН
APPLE совершила РЕВОЛЮЦИЮ!
0:39
ÉЖИ АКСЁНОВ
Рет қаралды 4,1 МЛН