pdf-preview.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <template>
  2. <div class="pdf">
  3. <div id="pdfView"></div>
  4. </div>
  5. </template>
  6. <script setup lang="ts">
  7. import Pdfh5 from "pdfh5/js/pdfh5.js";
  8. import "pdfh5/css/pdfh5.css";
  9. import { onMounted, nextTick } from "vue";
  10. import type { IProps } from "./index.type";
  11. const props = defineProps<IProps>();
  12. console.log(props);
  13. console.log(props.url)
  14. const initPDF = async () => {
  15. await nextTick(() => {
  16. const pdfh5 = new Pdfh5("#pdfView", {
  17. pdfurl: props.url,
  18. });
  19. pdfh5.on("complete", (status: string, msg: string, time: number) => {
  20. console.log(status, msg, time);
  21. });
  22. });
  23. };
  24. onMounted(() => {
  25. initPDF();
  26. });
  27. </script>
  28. <style scoped lang="scss">
  29. img {
  30. pointer-events: none !important;
  31. -webkit-user-select: none !important;
  32. -moz-user-select: none !important;
  33. user-select: none !important;
  34. -webkit-touch-callout: none !important;
  35. }
  36. * {
  37. -webkit-touch-callout: none;
  38. -webkit-user-select: none;
  39. -moz-user-select: none;
  40. -ms-user-select: none;
  41. user-select: none;
  42. }
  43. #pdfView {
  44. width: 100vw;
  45. height: 100%;
  46. }
  47. .pdf {
  48. width: 100vw;
  49. height: 100vh;
  50. }
  51. :deep() {
  52. .pdfjs .backTop, .pageNum {
  53. display: none !important;
  54. }
  55. }
  56. </style>