Had you only typed
Clear[pepP, pepL, pepF, plane, proJ, prjL]
pepP[x1_?NumericQ, x2_?NumericQ, x3_?NumericQ] :=
(* euclidean orthonormal base *)
Block[{p0 = {0, 0, 0}, v1 = {x1, 0, 0}, v2 = {0, x2, 0},
v3 = {0, 0, x3}},
If[Chop[v1.Cross[v2, v3]] == 0,
Print["Parallelepiped has no volume in 3D."];
Return[$Failed]
];
Flatten[{#, Plus[v3, #] & /@ #} &[{p0, v1, v1 + v2, v2}], 1]
] /;(* otherwise get orientation right *) x1 > 0 && x2 > 0 && x3 > 0
pepL[x1_?NumericQ, x2_?NumericQ, x3_?NumericQ] :=
Block[{p = pepP[x1, x2, x3], l1, l2},
l1 = Flatten[{p[[1 ;; 4]], {p[[1]]}}, 1];
l2 = Flatten[{p[[5 ;; 8]], {p[[5]]}}, 1];
Join[Partition[l1, 2, 1], Partition[l2, 2, 1], Transpose[{p[[1 ;; 4]], p[[5 ;; 8]]}]]
]
pepF[x1_?NumericQ, x2_?NumericQ, x3_?NumericQ] :=
Block[{p = pepP[x1, x2, x3]},
{p[[1 ;; 4]], {p[[1]], p[[2]], p[[6]], p[[5]]}, {p[[2]], p[[3]], p[[7]], p[[6]]},
{p[[3]], p[[4]], p[[8]], p[[7]]}, {p[[4]], p[[1]], p[[5]], p[[8]]}, p[[5 ;; 8]]}
]
(* get a base in the plane to project onto *)
plane[\[CurlyPhi]_?NumericQ, v_] := N[RotationMatrix[\[CurlyPhi], v][[1 ;; 2]]] /; Length[v] == 3
&& VectorQ[v, NumericQ]
(* orthogonal or orthographic projection *)
proJ[b_, l_] := (Most[Projection[#, b[[1]]] + Projection[#, b[[2]]]]) & /@ l
prjL[b_, l_] := proJ[b, #] & /@ l /; Length[b] == 2 && Chop[Dot[b[[1]], b[[2]]]] == 0
In[63]:= Graphics3D[Line /@ pepL[1, 2, 3], Axes -> True, AxesLabel -> {X, Y, Z}]
In[192]:= Graphics3D[{Opacity[.93], Polygon /@ pepF[1, 2, 3]},
Axes -> True, AxesLabel -> {X, Y, Z}]
In[191]:= plane[0 \[Degree], {1, 3, 1}]
Out[191]= {{1., 0., 0.}, {0., 1., 0.}}
In[190]:= Graphics[Line /@ prjL[plane[0 \[Degree], {1, 3, 1}], pepL[1, 2, 3]],
Axes -> True, AxesLabel -> {Subscript[x, p], Subscript[y, p]}]
you had solved it on your own. Now do a projection
Graphics[Line /@ prjL[plane[43 \[Degree], {1, -3, 1}], pepL[1, 2, 3]], Axes -> True,
AxesLabel -> {Subscript[x, p], Subscript[y, p]}]

Please note that the above picture is a 2D graphics, not a 3D graphics! It's shown in the 2D co-ordinate system of the projection plane. The edges of the parallelepiped are shown for control, not for confusion. Convince yourself by doing the convex hull which is the projection
ConvexHullMesh[Flatten[prjL[plane[43 \[Degree], {1, -3, 1}], pepL[1, 2, 3]], 1]]

In reality one must find some co-ordinate base in the projection plane, which has been done here rather rude by the function plane. Furthermore in general no point of the parallelepiped will coincide with the co-ordinate origin of the projection plane, as it is the case in the above code for the sake of simplicity. Certainly you will have knowledge about the projection plane from the context of your work.